C++/C中数组与指针的区别

来源:互联网 发布:客户达开店软件怎么样 编辑:程序博客网 时间:2024/04/28 06:28

数组一般是在静态存储区被创建,要不是在栈上被创建,数组名对应的是一块不可变的内存空间,注意这里和指针的区别是指针是指向,不是对应,指针可以指向任意的内存空间.

下面以一个字符串hello为例 :1.数组表示有6个字符的数组,数组名表示字符'h'的地址,但是指针名是指向真个字符串hello的内存空间

2.内容的复制与比较:不能对数组名直接进行复制和比较,需要使用strcpy进行复制.用strcmp进行比较 ;

 指针赋值的话,a=b是将a的地址赋给b,不是其内容 ,比较的话也是比较的地址不是内容 ,比较内容也是需要用strcmp来比较

3.计算内存容量,数组使用sizeof是真个数组所占的内存,但是指针的话得到的是一个指针变量的字节数4;

注意 : 当数组作为函数的参数进行传递时,数组会自动退化成同类型的指针,所以不论数组的容量是多少,sizeof都是占4个字节(32位平台下,指针的长度(占用内存的大小)为4字节).

0 0
原创粉丝点击