char c = "abc";
c[0] = 't';
char *c1 = "def";
c1[0] = 't';//err
首先c1是乙個指標,它只是指向"def"這個記憶體塊。而」abc「是乙個常量區,不可以對其進行更改。
而c定義的是乙個陣列,在分配記憶體時,會自動給它分配四個位元組的位址,並且會進行乙份拷貝工作,此時分配是在棧區進行的,是可以修改的。
若定義的是
char c2 = "abc";
char *p = c2;
p[0] = 't';
也可以訪問,是因為p指向的是乙個陣列,這個陣列是有確定大小的,因而可以通過位址去訪問。
char *c3 = new char[100];//相當於c3[100];
c3[0] = 't';//ok
char 和char 的區別
1 char是乙個陣列定義,char 是指標定義 也稱char為靜態陣列,char 為動態陣列 2 指標和陣列的區別 1 指標和陣列的分配 陣列是開闢一塊連續的記憶體空間,陣列本身的識別符號 也就是通常所說的陣列名 代表整個陣列,可以使用sizeof來獲得陣列所佔據記憶體空間的大小 注意,不是陣列元...
char 和char 的區別
之前在用到char 和char,用到srtncat,讓char對char 進行新增時執行會崩潰,之後做了一些分析和練習,對char 和char有了更深的理解。下面附上一些測試資料。include include include using namespace std int main cout do...
char 和 char 的區別
最近在做牛客網上的程式設計題時遇到了char 的用法,之前一直認為char 和char 沒有區別,乙個簡單的字串中空格替換,差點難倒了,因此,仔細蒐羅了一下char 和char 方面的知識,在此做個總結,方便以後檢視。舉個簡單的例子 char s1 hello char s2 hello 區別 s1...