您的位置:首页 > 编程语言 > C语言/C++

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

2016-03-28 22:01 162 查看
指针与数组可以替换使用,容易让人产生错觉二者是等价的,那么二者到底有什么区别呢?

数组:在静态存储区被创建或者在栈上被创建,数组名对应着一块内存(而不是指向),其地址与容量在生命期内保持不变,且数组的内容可以改变;

指针:可以随时指向任意类型的内存块,“可变”,所以指针更加灵活但也更加危险

数组:用标准库函数strcpy进行复制,而不能使用b=a直接复制这将产生编译错误

指针:可以直接p=q,即将q的地址直接赋给了p

数组:sizeof(a)得到数组的容量

指针:sizeof(*p)得到指针变量的字节数,而不是指针p所指向内存的容量

char a[] = "hello world";
char *p  = a;
cout<< sizeof(a) << endl;   // 12字节
cout<< sizeof(p) << endl;   // 4字节
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: