C语言数组学习有什么心得?
的有关信息介绍如下:1、数组传递给函数,模拟传引用调用的方式自动把数组传递给函数,意味着被调用的函数能够修改原是数组的元素值,
e.g.int
hourly;//数组定义
void modify(int [],int
);//函数原型
modify(hourly,24);//函数调用,数组名即数组第一个元素的地址
注意:为了防止函数中修改数组的值,采用类型限定符const做前缀,数组元素成为函数体中的常量,函数体中任何修改数组元素的企图都会导致编译错误,
e.g.void modify(const int [],int);
2、字符数组
字符串读取:scanf("%s",string1);//不用地址符号&,因为数组名是数组的起始地址
字符串显示:printf("%s",string1);
e.g.char string1[]="good
girl";//字符串
charstring1[]={'g','o','o','d','\0','g','i','r','l','\0'};//上下声明等价
注意:'空字符'='\0',终止符,用printf("%s",string1)输出,得到good girl。
3、多维数组
e.g.int a={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
假设数组起始地址2000,则
表示形式含义地址
a指向a,即0行首地址。2000
a,*(a+0),*a第0行第0列元素地址2000
a+1,&a第1行首地址2008
a,*(a+1)第1行第0列元素地址2008
a+2,*(a+1)+2,&a第1行第2列元素地址2012
*(a+2),*(*(a+1)+2),a第1行第2列元素的值7
在二维数组中,a+i=a[i]=*(a+i)=&a[i]=&a[i],即他们的的地址值是想等的。
数组是规则化依次排列的同类量的集合,对于数组操作也就是对于一群同类型数据操作,需要结合循环进行规则化数组元素操作,其中数组元素也就是一般变量。
多看书,多思考。