c語言指針字符串與字符數組字符串的區別


#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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM