本帖最后由 ofVv 于 2014-7-18 00:37 编辑
前者是字符数组变量, 可以修改该字符串里的内容, 相当于为a[]赋初值;
后者是字符串常量, 内容不能修改, 相当于创建一个字符串, 然后将其首地址保存在指针p中.
- int main(int argc, const char * argv[])
- {
- @autoreleasepool {
- char a[] = "hello, world";
- char *p = "hello, world";
- a[1] = 'w';
- p[1] = 'w';
- printf("%s\n%s", a, p);
- }
- return 0;
- }
复制代码
第9行会报错, EXC_BAD_ACCESS. |