版权归原作者所有,如有侵权,请联系我们

[科普中国]-字符数组元素名称

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

简介

字符数组的定义方式与一维数组、二维数组的定义方式类似,只不过数组的类型是char型。

例如:char s1[6];

定义了一个元素个数为6、数组名为S的字符数组,该字符数组中可以存放6个字符型数据。

例如:char s2[3][6];

定义了一个二维字符数组S,该数组可以存放3x6个字符型数据。

字符数组的初始化,即在声明的时候在后边直接赋值一个字符串。

如:char name[9]="xiaogang";

但是如果在声明语句以外的位置,就无法直接对整个数组直接赋值了,要把strcpy这个函数来实现。

而在这个字符数组中,包含了8个字符数据,即为八个元素,name[i]即为这个字符数组的元素名称,其中i可取0至8。1

字符数组名和数组元素名的区别例:

char ch[5]="abcd"其中,ch即为字符数组名,也代表了字符数组的首地址;而ch[0]、ch[1]等为字符‘a’,‘b’等的元素名。

字符数组进行字符数组的复制、连接、比较、求长操作时,都不能写数组的长度。即

void main(){ char name[100]={0}; scanf("%s",name); printf("%d\n",strlen(name)); 这里的name还是一个地址 //编译器遇到strlen这个函数就知道后边是字符串,//而name只是这个字符串的首地址,当它遇到所指向的地址为’\0’就停止计数。}进行字符数组的打印时,只需要给一个首地址,就从该地址所指向字符开始打印,直到所指向的字符为‘\0’。

而其它类型数组时,是不行的。例子:

字符数组

void main(){ char name[100]={0}; scanf("%s",name); printf("%s\n",&name); printf("%s\n",&name[2]); //表示从输入后第3个字符开始打印,通过字符数组元素名称取地址}其它类型数组

void main(){ int a[5]={0,1,2,3,4}; printf(a);}这里将无法打印,需要通过循环把数组的元素一一打印。字符数组的元素也可以通过这种元素名的方式进行循环打印。

void main(){ int a[5]={0,1,2,3,4}; int i=0; for(i=0;i