这是...
char* myString = "hello";
...和这个效果一样吗?
char actualString[] = "hello";
char* myString = actualString;
最佳答案
没有。
char str1[] = "Hello world!"; //char-array on the stack; string can be changed
char* str2 = "Hello world!"; //char-array in the data-segment; it's READ-ONLY
第一个示例在堆栈上创建了一个大小为 13*sizeof(char)
的数组,并将字符串 "Hello world!"
复制到其中。
第二个示例在堆栈上创建一个 char*
并将其指向可执行文件数据段中的一个位置,该位置包含字符串 "Hello world!"
。第二个字符串是READ-ONLY。
str1[1] = 'u'; //Valid
str2[1] = 'u'; //Invalid - MAY crash program!
关于c - 这些关于指针的陈述是否具有相同的效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2096448/