C/C++ 数组变量声明备忘
用习惯了.net, java的人,用c/c++的数组还是很不习惯的。c/c++中数组和指针是等价的,但是在写法上稍有
1,形参
例如,以数组为形参,有两种写法:
[cpp]
int findmax1(int* array);
int findmax2(int array[]);
编译都是可以通过的,语义也都一样。
但是,在数组的初始化中:
[html]
//非法 int* array1 = {0,1,2,3};
int array[] = {0,1,2,3};//通过
一定注意*和[]与int结合的顺序不同。
2,形参
另外,以int arrayname[] 的形式初始化数组,可以提高数组变量初始化的效率。
[cpp]
int array1[10] = {0};//将整个数组成员元素初始化为0;
char array2[]={'a','b','c',0}; //当数组定义时没有指定大小,当初始化采用列表初始化了,那么数组的大小由初始化时列表元素个数决定,该数组长度为4
int array3[8]={1,2,3,4};//当数组声明长度大于列表元素长度,剩余元素初始化为0, 等价于 int v5[8]={1,2,3,4,0,0,0,0};
3,sizeof()
sizeof(int*),数组指针的字节数,32位上为4;
int array1[10] = {0};
sizeof(array1),数组实际所占内存空间,此处为4*10 = 40;
总结:
int* array1为指针的意义,而int array1[]为数组的意义。
摘自 bestwolf1983的专栏
上一篇: 香港浅水湾好玩吗 实用浅水湾旅游攻略
下一篇: 楼上办公室就是两人