C/C++ 数组变量声明备忘

用习惯了.net, java的人,用C/C++的数组还是很不习惯的。C/C++中数组和指针是等价的,但是在写法上稍有

1,形参

例如,以数组为形参,有两种写法:

int FindMax1(int* Array);
int  FindMax2(int Array[]);

编译都是可以通过的,语义也都一样。

但是,在数组的初始化中:

//非法 int* Array1 = {0,1,2,3};
int Array[] = {0,1,2,3};//通过

一定注意*和[]与int结合的顺序不同。


2,初始化

另外,以int ArrayName[] 的形式初始化数组,可以提高数组变量初始化的效率。

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[]为数组的意义。


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值