|
C语言里面很多地方指针和数组是可以互换使用的, 很多同学经常搞不明白. 大家可以把自己的理解写出来, 让论坛里的其他人看看, 既可以帮助别人,也可以让自己的错误及时纠正.
我说一个, 指针是可以赋值的, 但是数组只能初始化. 这是因为指针只记录了一个地址, 而数组是真的代表一块内存空间的.
- void myfunc()
- {
- int a1[4] = { 1, 2, 3, 4 }; // OK, 初始化
- int a2[4]; // OK, 未经初始化的数组
- int* p1 = a1;
- p1 = a2; // OK, 指针可以赋值
- a2 = a1; // ERROR, 数组不能赋值
- }
复制代码 |
|