数组是什么
数组和结构体不同;不同之处在于结构体中什么都能放,数组中放的必须是同一类型。指针、结构体、结构体相关知识请移步我的另一篇文章,点击移步。我们先上一段代码看看效果:
# include<stdio.h> char charr[10]={'a','b','c'}; //由于C语言中没有定义字符类型,所以需要定义字符数组来储存字符串 //其中10,是指字符串长度 char cha[10]="abc"; char input[10]; int main(){ printf("%s\n",charr); printf("%s\n",cha); printf("请输入:"); scanf("%s",&input); printf("打印输入内容:%s\n",input); printf("完成"); }
可以看到以上三种字符串的赋值都是ok的,注意如果超出了定义的字符长度,C语言对于超出部分是不会接收的,并且字符数组只能接受字符串哈,不接受其他类型。以上就是利用一维数组储存单个字符串的方式。
拓展:二维数组:Char数组
但一维数组只有长度,没有宽度,如果想储存5组、10组、N组字符串,那么就要用到二维数组:
# include<stdio.h> char cha[5][10]={{"abc"},{"def"}}; //注意:[5][10]指的是5行10列,我管它叫先行后列。 char charr[5][10]={{'a','b','c'},{'d','e','f'}}; char input[5][10]; int main(){ printf("cha的输出为:%s,%s\n",cha[0],cha[1]); printf("charr的输出为:%s,%s\n",cha[0],cha[1]); printf("请输入:"); scanf("%s",&input); printf("请输入:"); scanf("%s",&input[1]); //注意如果只写input不加第几行的话,会默认为input[0],所以后面要加行数 printf("打印输入内容:%s,%s",input[0],input[1]); }
拓展:整型数组:Int数组
# include<stdio.h> int in[10]={1,2,3}; //有人会问,为什么字符串类型存储N组需要二维,整型一维就可以。 //1、因为一个整型长度是4个字节,所以不超过32位的2^31-1=2147483647,就没问题。 //2、文章上面说了,C语言中未定义字符类型,所以整型一维和字符型二维的使用也是差不多。 int intt[10][10]={{1,2,3},{4,5,6},{7,8,9}}; //intt可以想象为网格状的数据存储 int main(){ printf("%d\n",in[0]); printf("%d\n",intt[0][2]); }
好滴,C语言中整型数组和字符型数组的简单使用就差不多啦。