陣列長度和字串長度

2021-03-10 07:22:39 字數 806 閱讀 6255

1樓:森萱倪君

你記bai住兩點:

1.c風格字元du串只要是使用雙引號(半zhi角)的,都會以\0結束dao,就是說會多出版一個字元。

權2.凡是陣列沒有指名大小的定義,全部都會以賦值號右邊的初始化長度作為陣列預設大小。

那麼你的問題解答如下:

字串"abcd"長度為4,是因為字串長度指的是字串中有效字元的個數,不包含c風格結束符\0,而字串陣列a="abcd"長度為5,因為這個是算的陣列的長度,也就是所佔用的儲存空間,當然要包含\0結束符(它也要佔用儲存空間)。a[10]="abcd"的長度為10,因為你顯示指定了字元陣列的長度,。所佔記憶體當然就是10咯,它的儲存空間是連續的,也就是說,10個字元空間中,前面分別是a,b,c,d和結束符\0,後面全部都是0(被初始化了),總共有5個0,加上前面的abcd和結束符\0,一共10個,他們的儲存是連續的。

a=,你沒有按照雙引號定義,因此不算c風格字串,只是一個字元陣列。而你又沒有指名大小,那麼它的大小等於你初始化的長度,這裡就是4,sizeof也等於4,沒有結束符\0了。後面一個問題重複了,不解釋!

2樓:匿名使用者

當使用字bai

符串陣列儲存du字串時,往往陣列是固

zhi定長度的,假定dao數內組定義長度是n,意思是最多容可儲存n個char型別資料;字串特點是最後以一個0結束,這就意味著前面定義的長度是n個元素的陣列在存放字串時最多存放n-1個字元,加上結尾的0長度是n;當然存放字串長度小於n-1的自然沒有問題,只要搞明白:為存放字串,在除了儲存字串中的字元以外,還要在末尾多用一個單元存放字串結束符0。

在C 中如何給字串陣列定義長度呢

在c 中給字串 陣列 定義長度時,首先要先確定待儲存的資料的最大可能長度,根據該長度進行陣列長度定義,其次,要記著字串是有結束符位置的,所以,在資料長度基礎上,要給字串結束符留個位置。如,題目要求 輸入資料不超過100個字元長度。則變數定義為 char data 100 1 建議寫成 1這樣,表示有...

C 動態增加陣列長度,c 動態定義陣列長度

1.你可以設立一個指標intpointer 指標和陣列本來就是一家人 int intpointer 然後當取得了i的值後用 intpointer int malloc i sizeof int int main 用new 陣列長度給定後。如果想增加。只能重新分配空間。儲存元素,然後在進行刪除 用re...

C語言中用動態陣列儲存長度未知的字串,應該怎麼使用malloc和realloc函式

char buffer buffer char malloc initialize size buffer char realloc buffer,initialize size add size 一般做法是設定一個初始值,再設定一個追加值。比如 p初始分配10個字元空間。當空間不夠用的時候,每次增...