c語言中 關於字元陣列佔記憶體的問題

2025-07-09 22:30:15 字數 3035 閱讀 3816

c語言 字串陣列中空格佔用空間嗎?

1樓:姓媛子車蓮

有效字元不包括結束字元\0的話,應該是12個,實際佔用記憶體是13位元組。中間的空格也要計算的。

2樓:網友

數的時候不僅要算空格,還要算末尾的空字元'\0',所以這個字串大小應是13個字元。

3樓:網友

當然算啦,空格和字母一樣都算乙個字元的。hello! world一共十二個字元。

4樓:匿名使用者

算佔用,例子中的是12個有效字元。

c語言中如何計算乙個陣列佔記憶體多少空間

5樓:網友

int var = ;

計算整個陣列的記憶體空間。

sizeof(a);

計算陣列元素的個數:

sizeof(a)/sizeof(int);

6樓:網友

在可見陣列定義時用sizeof運算子:

int a=j;

int b=sizeof(a);

7樓:姚彩森浩嵐

型別所佔空間*陣列長度,其中型別所佔空間由系統決定,可以使用sizeof函式測出。

c語言字串和字元常量佔用記憶體大小怎麼看

8樓:網友

char a="abc";//這是用字串符初值,在c語言中,字元是以'\0'結尾的,因此,a的長度應該為4;

而:char b=;由只是普通的陣列,其內有三個字元,其長度為3;

多說一句:在拿不準到底是多少的時候,可以用sizeof()來看一下!如。

9樓:網友

如果初始化的時候沒有指定陣列長度,採用自動推算的話,陣列大小和字串字面量是一樣的。

使用sizeof運算子獲取陣列的大小。

例如char arr = "hello";

sizeof arr == sizeof "hello" ,就是6.

而因為字元常量的型別是int,所以sizeof 'a' == sizeof(int)。

在c語言中如何驗證乙個字元型陣列(存放中文字元)與一些中文常量相等?

10樓:昝俏利

直接迴圈讀位元組比較。

strdest++ == *src++

11樓:網友

**呢?提供出來幫你參謀一下。

在c語言中,字串常量"abh\\013\\\"在記憶體中所佔儲存空間位元組數是?求解釋,3個\什麼意思?

12樓:聽不清啊

這是錯的,不能通過編譯的。

\』表示乙個'\'字元,'\"'表示乙個雙引號,但是少了串尾自身的雙引號。

13樓:夏碧夢

"abh\\013\\\"是錯誤的,c語言遵循的是最大匹配語法規則,當編譯器看到第乙個引號「時,判斷這是乙個字串,然後讀取a、b、h,遇到 \是判斷其實乙個轉義字元,而轉義字元是必須在匹配乙個字元的,於是\\實際是字元'\',再是,接著\\是\,\是「,因此缺乙個引號來結束字串。

14樓:

首先要指出,你的題目有問題。

題目很可能是"abh\\013\\\"",你少了乙個引號。

如果是這樣,那麼佔9個位元組。解釋如下:

c語言中,'\'本身是轉義字元,在字串中用於改變後續某些字元的含義。例如,''表示0x0d即"新行",'\b'表示響鈴,'\013'表示ascii碼為八進位數013對應的字元,等等。詳見。

若要表示'\'本身,則需要使用兩個連續的'\',即'\\'。

所以,"abh\\013\\\""中,第一對\\ 是乙個字元,即 \;第二對\\也表示乙個\;而\"表示乙個"字元。而013沒有被轉義。故總共得到9個字元,在記憶體中佔9位元組。

c語言中如何計算乙個陣列佔記憶體多少空間?

15樓:網友

c語言中copy

陣列的sizeof值等於陣列所佔用bai的記憶體位元組數。duc語言中有乙個zhi專門用於檢測型別或變數或陣列在內dao存中所佔有的空間(位元組數)的操作符sizeof,用sizeof可以直接檢測出陣列在記憶體佔有的位元組數。

語法規則是:sizeof(x); 識別沒有歧義時也可寫成sizeof x;)—其中x是型別名、變數名或陣列名等,返回x所佔位元組數(int型)。

16樓:

要看陣列元素的型別,不同型別資料所佔的儲存空間是不同的。

計算方法是用你所定義的型別所佔的位元組數*陣列長度。

17樓:網友

首位址由陣列名錶示,也是0元素的位址。

若有: int a[10];

18樓:小八

型別*陣列長度。

比如:int a[10] sizeof(a)=4*10

1 在計算機二級c語言中 為什麼不能用字串常量對字元陣列名進行整體賦值?

19樓:網友

語法規定的,字串常量對編譯器來說只是個位址而已,字串常量儲存在**段,不可被修改,你可以把字串給乙個字串指標賦值,但是編譯器是不會幫你幫字串的資料放到陣列的空間內,這些要自己完成,或者呼叫memcpy記憶體拷貝將整塊的字串複製過去。

20樓:網友

可以用指標,但不能用字元陣列名。

21樓:

陣列名 不等於 指標。。

char arr[100] = ; // 可以char *p = "welcome to my world!"; // 可以。

char arr[100]; arr = "welcome to my world!"; // 不可以!!因為陣列名 不等於 指標!

有興趣可以去看 指標與陣列 這本書。。

關於C語言中陣列的定義,C語言中如何定義陣列

一樣的,陣列在做函式引數時,傳遞給函式的都是陣列的首指標,哪怕你的函式這樣寫 void swp int p 在呼叫的時候swp array 也是可以的。只要傳遞給函式一個陣列的首指標就行了,而你的array正好是陣列的首指標。char s 10 123 是表示前三個元素分別是1,2,3但s 2 0 ...

c語言中的陣列的意義是什麼,c語言中陣列有什麼作用

你想想,當我們想要把一類大量的資料儲存下來的時候 比如說小於1000的偶數 難道你要一個個的定義變數,然後再給他們一個個賦值?這樣重複了大量的操作。而陣列的出現解決了這個問題,你可以只用寫一句語句就可以獲得大量的同類資料儲存單元,如定義int a 1000 就得到了1000個整形資料,再配合迴圈,就...

c語言字串陣列的問題C語言字串陣列的問題

include int main scanf s a for i 0 a i 0 i for j 0 j 5 j 修改 1 下標從0 4,共5個 return 0 每行結尾的 僅僅是為了連線字串使用的,如果一個字串過長,寫在一行比較不合適,就在該行結尾處加上一個反斜槓 就可以在下邊的行繼續寫這個字串...