总结一下数组和指针的区别。
有两种形式的数组定义。
// a代表的是数组名,而p则代表指针。
char a[] = "abc";
const char* p = "abc";
那他们两个有什么区别?
- a是左值,但无法修改,a++会编译失败。
- p是常量指针,指向一个地址,但p可以修改,p++合法。
他们访问内存元素a[i]/p[i]有什么区别
- 数组名a表示一个内存地址也就是数组的地址,访问特定元素啊a[i]时,取出数组地址,再添加偏移量i即可取出内容。
- 对于指针p,要先从p处取出其所储存地址,访问该地址p和偏移量i之和所指向的实际地址,取出内容