字符串和字符数组的区别

作者&投稿:智邱 (若有异议请与网页底部的电邮联系)
字符数组内任意位置可写任意数据包括0x0,而字符串只有结束的位置有一个0x0,一但有了0x0这个数据,则字符串结束。对电脑而言只有二进制字节数组;对人脑才有字符、字符串、空字符结束符、数组等。
1、字符数组是指用来存放字符数据的数组。其定义的一般形式为: char 数组名[数据长度] 。字符数组用于存放字符或字符串,字符数组中的一个元素存放一个字符,它在内存中占用一个字节。C语言中没有字符串类型,字符串是存放在字符型数组中的。
2、例:
char c[10];
c[0]='I'; c[1]=' '; c[2]='l'; c[3]='o'; c[4]='v'; c[5]='e'; c[6]=' '; c[7]='y'; c[8]='o'; c[9]='u';
以上定义了c为字符数组,包含10个元素。
由于字符型数据是以整数形式(ASCII代码)存放的,因此也可以用整型数组来存放字符数据,例如:
int c[10];
但这时每个数组元素占2个字节的内存单元,浪费存储空间。[1]
字符数组也可以是二维或多维数组,例如:
char c[5][10];
即为二维字符数组。

3、字符串主要用于编程,概念说明、函数解释、用法详述见正文,这里补充一点:字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的,如s=“abcdefghij”,则s[1]=“a”,s[10]="j",而字符串的零位正是它的长度,如s[0]=10(※上述功能Ansistring没有。),这可以给我们提供很多方便,如高精度运算时每一位都可以转化为数字存入数组。

字符串以\0结束那是字符串在计算机内的存储结构,你定义了字符串计算机默认会在字符串后加上\0做为字符串结束标记,但是你写程序时并没有显式的写出来。
判断是否为字符串:字符串都是用双引号包含的。例如char *string="beijing"。
定义字符串有两种方法:一、字符串指针 char *string="abcde";
二、一维字符数组。例如:char string[10];string="abcde";
用字符数组定义注意了,数组长度为n,但是字符个数只能为n-1,就是上面说的计算机默认加了\0占了一个,否则会溢出。
字符数组一维的和字符串一样,二维的就是char string[M][N];当然你还可以类似定义多维的。

~

java字符串和字符数组的区别
答:1、字符串是类,字符数组是数组。(数组和类的区别就不用我说了吧)2、字符数组是char类型的,字符串是String类型的 3、两者之间的相互转化:String s="this is a string";char[ ] c={'t','h','i','s','i','s','a','c','h','a','r'};字符串转换为字符数组 char[ ] ...

字符串与一般字符数组的最大区别在哪里?能不能对字符串进行整体的读写...
答:C语言中字符串与一般字符数组的最大区别在于:字符串常量的最后由系统加上一个'\0',而字符数组不会添加。字符串能通过scanf()、printf()等函数进行整体的读写。C语言中没有字符串类型,字符串是存放在字符型数组中的。在C语言中,是将字符串作为字符数组来处理的。为了测定字符串的实际长度,C语言...

字符数组和字符串的区别
答:C语言是一种抽象的通用程序设计语言,被广泛运用于生活中,那么字符数组和字符串的区别是什么?以下是对于此问题的解释:产品名称:Dell产品型号:Dell灵越5000系统版本:Windows10软件版本:JetBrainsPhpStormv2019.3.3区别一:定义不一样1、字符串指针变量本身是一个变量,用于存放字符串的首地址。字符串...

在C++中字符数组和字符串有什么区别
答:唯一的区别就是字符串末尾有一个'\0'面字符数组是没有的. char ch1[]="hello";//该串有6个字符,5个可见字符,因为是串,所以末尾自动加上'\0';共六个char ch2[]={'h','e','l','l','o'};//这样写就成了数组.是确确实实的5个字符 本回答由电脑网络分类达人 武岩推荐 举报| 答案纠错 | 评论...

字符串与一般字符数组的最大区别在哪里,能不能对字符串进行整体的读写...
答:C语言中字符串与一般字符数组的最大区别在于:字符串常量的最后由系统加上一个'\0',而字符数组不会添加。字符串能通过scanf()、printf()等函数进行整体的读写。C语言中没有字符串类型,字符串是存放在字符型数组中的。在C语言中,是将字符串作为字符数组来处理的。为了测定字符串的实际长度,C语言...

字符串和字符数组区别
答:字符串和字符数组没有区别。char *a; 是指针。没有这种形式char* a("asdfadf");char a[8] = "asdfadf"; 和 char *a="asdfadf"; 效果是一样的。例如:char *a="asdfadf"; // 声明和初始化 int i;for (i=0;i<strlen(a);i++) printf("%c",a[i]); // 打出 asdf...

字符串与字符数组的区别是什么?
答:char dont [] = {'A','B','C'};这样编译器会不知道从哪里停止,直到找到内存中最近的一个空字符,好在内存中空字符很多,不会花费太长时间。二、字符数组 字符数组与字符串数组的最大区别是处理范围不同,字符串数组遇到空字符便结束,而字符数组可以根据编程者的需要控制处理的长度。但是和字符...

【急问C语言】字符串与字符数组的区别?请用具体实例(最好把各种比表示...
答:通常字符数组中的所存储的内容也可以称为字符串, 但我想你想表达的意思可能是对于:char *p1 = "A String.";和 char p2[] = "Another String.";这两种写法的不同吧.p1指向的这个字符串是个常量, 不可改变, 程序在编译期间就为"A String."这个字符串分配了固定的空间, 它被存储在全局静态...

字符串和字符数组的区别
答:定义字符串有两种方法:一、字符串指针 char *string="abcde";二、一维字符数组。例如:char string[10];string="abcde";用字符数组定义注意了,数组长度为n,但是字符个数只能为n-1,就是上面说的计算机默认加了\0占了一个,否则会溢出。字符数组一维的和字符串一样,二维的就是char string[M][...

字符数组和字符串的区别
答:C语言是一种抽象的通用程序设计语言,被广泛运用于生活中,那么字符数组和字符串的区别是什么?以下是对于此问题的解释:产品名称:Dell 产品型号:Dell 灵越5000 系统版本:Windows 10 软件版本:JetBrains PhpStorm v2019.3.3 区别一:定义不一样 1、字符串指针变量本身是一个变量,用于存放字符串的...