c++中char * 和 char []的區別

char* 和 char[]的區別:

主要考慮兩點:
1  內存分配上的區別, 指針不分配指向數據的空間,數組則分配所有元素的內存空間;
2  數組名可以認爲是一種帶有 const 屬性的指針(就是不能修改的指針),比如
    char a[6];
    strcpy(a, "Hello");
    puts(a);
    putchar(*a);  //輸出 H ,即 a數組的第一個元素
3  意義以及行爲:
   char *p="Hello";     //這是定義一個指針,並把在常量區中的一個字符串 "Hello"的首地址賦值給這個指針,所以,是無法修改數據內容的(*p='h'; 錯!),但是你可以修改指針,如p=arr;
   char arr[]="Hello";  //定義一個數組,然後把常量區字符串 "Hello"拷貝到這個數組中來,所以,操作和常量"Hello"沒有關聯,你可以賦值:arr[0]='h',OK, 但是不能修改 arr
 

發佈了25 篇原創文章 · 獲贊 1 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章