#include <stdio.h>
int main() { //字符串常量,存放於內存常量區。 //常量區區的內存具有緩存機制, //當不同指針指向的常量值相同時, //其實這些指針指向的是同一塊常量區內存 //且常量區內存不允許被程序修改
char *str1 = "hello"; char *str2 = "hello"; //報錯 // *(str1+2)='A';
printf("str1 = %p\n",str1); printf("str2 = %p\n",str2); //字符串變量存放於棧內存中, //不同字符數組指向的字符串值相同, //也是保存在兩塊不相同的內存中 //且棧內存允許被程序修改
char str3[] = "hello"; char str4[] = "hello"; //不報錯 // str3[2]='A';
printf("str3 = %p\n",str3); printf("str4 = %p\n",str4); return 0; }
結果:
str1 = 0x10f17df80 str2 = 0x10f17df80 str3 = 0x7fff50a82bf2 str4 = 0x7fff50a82bec