char 和char 的區別

2021-07-10 03:58:40 字數 483 閱讀 8981

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...