char 和char 的初始化

2021-09-27 12:14:02 字數 840 閱讀 7679

har* str1 = "abcd";

char str2 = "abcd";

void reverse(char * input, int len)

實際操作時,不能採取str1的初始化形式

1、char* str1 ="abcd"

含義是先新建乙個字串,內容是abcd,然後str1是乙個頭指標,指向這個串。但是這個新建串是作為const存在的,並不是乙個可以編輯的變數,因此,一旦你想更改其中的值,程式就會掛掉。

1)改變str指向的記憶體,會報錯。

2)讓str指向另乙個字串不會報錯。

相應的2、char *str1 = (char*)malloc(5*sizeof(char));

str1 = "abcd";

相當於開闢乙個5個長度的陣列,頭指標是str1,但是第二句又把str1指向的位置變了,之後還是不能操作str1的內容。

示例:

這個的含義是在記憶體中開闢乙個陣列,然後向該陣列中填充"abcd",是乙個可操作的變數。所以初始化的時候可以這麼寫,就能在之後更改其中的內容了。

char 和char 的初始化

char str1 abcd char str2 abcd void reverse char input,int len 在呼叫reverse函式時.從形式上 reverse str1,5 和reverse str2,5 都沒有錯誤,傳入的引數都是char陣列的頭指標,但是實際操作時,不能採取st...

char 和 char 初始化的問題

如下 1.char string 10 2.char string 10 string 0 0 號稱是這兩種方式都可以,我使用的是第一種。第一種方法會使得字串陣列宣告的時候每一位都被置空 第二種方法是用,將字串第一位置空,根據c標準,空字元被認為是字元陣列結束的標誌,所以這樣一來,字元陣列就被初始化...

char 和char 的區別

1 char是乙個陣列定義,char 是指標定義 也稱char為靜態陣列,char 為動態陣列 2 指標和陣列的區別 1 指標和陣列的分配 陣列是開闢一塊連續的記憶體空間,陣列本身的識別符號 也就是通常所說的陣列名 代表整個陣列,可以使用sizeof來獲得陣列所佔據記憶體空間的大小 注意,不是陣列元...