char strabc 與char strabc的大小

時間 2021-09-21 10:01:42

1樓:匿名使用者

先糾正乙個錯誤,char str[3]=;/*用逗號隔開*/。

char str="abc"; 這個str占用4位元組,這是因為c字串,編譯器會自動加乙個'\0'。"abc"在記憶體中實際上是"abc\0",所以為四位元組。

char str[3]=; 這個容易理解,你定義時候已經定義為char [3],所以佔3位元組。

2樓:匿名使用者

str="abc",為陣列賦值而一種形式,即字串形式;它裡面個數隨未定,但有字串可推出。字串末尾結束標誌『、0』通常不寫出來,但占用乙個儲存單元。故為4;後面元素數為3;

3樓:情意綿綿d胸毛

char str="abc"與char str[3]=的大小比較?

char str="abc", 實際編譯器編譯時 陣列中的內容為 a b c \0

char str[3]= 陣列中內容為 a b c所以陣列空間大小不一樣

4樓:上上西

不知道你講的是哪方面的大小比較。

char str="abc"佔4個位元組,會自動加上'\0'作為字串的結尾。

char str[3]=佔3個位元組,就算你這樣寫:

char ch=;它還是佔3個位元組,這是逐個初始化的語法規定。

不知道我是不是牛頭不搭馬嘴。

char a[]="abc";char b[4]={'a','b','c','d'};哪個陣列長度長

5樓:思念天涯

如果不是動態開闢的陣列,你宣告的時候給多少長度就是多少長度。你使用 strlen 函式求嗎? strlen只能求字串長度,沒辦法求陣列長度。

strlen 是用 '\0' 來判斷字串的結束標誌的,所以第乙個短

6樓:金色潛鳥

佔記憶體單元,兩者都是4個,a 有乙個字串結束符。

用 sizeof(a) 和 sizeof(b) 計算它們 佔記憶體單元大小。

字串長度 a 是3, b 是4,

但b 不能用 strlen(b) 計算,因為它缺了字串結束符,strlen找不到字串結束符,得出的數值就不可靠了。

7樓:月球車飛翔

一樣長,都是4個字串,前面那個除了abc還有乙個結束符

8樓:匿名使用者

就只比較陣列長度的話,兩個一樣長吧。

在c語言中char a[]={'a','b','c'}和char a[]="abc"有什麼區別 它們各在記憶體裡佔多少和位元組

9樓:匿名使用者

char a= 這是乙個字元陣列,佔3個位元組。 char a="abc" 則不同,它是乙個字串,最後還有乙個'\0'結束符,佔4個位元組

static char a[ ]="abc" ; static char b[ ]={'a','b','c'} ; a和b陣列的長度比較

10樓:

static char a[ ]="abc" ; static char b[ ]= ;a,b陣列長度不等價,因為陣列a結尾多了乙個結束符("\0"),所以陣列a的長度比陣列b的長度大1.a陣列長度為4,b陣列長度為3.

11樓:

static char a[ ]="abc" ; 陣列長度為1

static char b[ ]= ;陣列長度為3

對兩個陣列a和b進行如下初始化: char a[] = 「abcdef」; char b[] = {『a』,『b』,『c』,『d』,『e』,『f

12樓:蒼穹夜光

要不這樣理解吧

首先a作為字串長度為6;

作為字元陣列有7個元素,包含\0,a陣列的長度為7;

b是字元陣列有6個元素,不是字串,b陣列的長度為6;選d

13樓:匿名使用者

"abcdef」;是字串,字串預設是有字串結束符的。

所以選d

14樓:匿名使用者

樓主首先要明白的是什麼是長度。陣列元素的個數稱之為陣列的長度。

現在再看看問題 第乙個是 字串,第二個是字元陣列 ,字串以'\0'為結束符號,字元陣列不用。

那就很明白了。b 對。

要說明的是,雖然他們長度相同,不過佔的記憶體位元組數是不一樣的,第乙個佔7個位元組(後面的'\0'佔乙個。)第二個佔6個位元組。

15樓:酷兒

#include

void main()

;m=sizeof(a);

n=sizeof(b);

printf("a 所佔位元組數 %d,b 所佔位元組數 %d\n",m,n);

}所以選d

16樓:用飄柔洗腳丫

#include

#include

using namespace std;

int main();

cout<:67

答案自己猜

17樓:喜歡種蘑菇

答案是d,a陣列比b陣列長度長

原因:a陣列的長度是6,b陣列的長度是7。

在c語言中沒有專門的字串變數,通常用乙個字元陣列來存放乙個字串。字串總是以'\0'作為串的結束符。

因此當把乙個字串存入乙個陣列時,也把結束符 '\0'存入陣列,並以此作為該字串是否結束的標誌。

即陣列a的實際存放情況為:a b c d e f '\0'  而陣列b的實際存放情況為:a b c d e f

詳細說明:

把乙個字串賦值給陣列:u4 str1=;

實際上陣列str1在記憶體中的實際存放情況為: c x k n m s l '\0'

這後面的'\0'是由c編譯系統自動加上的。所以在用字串賦初值時一般無須指定陣列的長度, 而由系統自行處理。

把字元陣列str1中的字串拷貝到字元陣列str2中,串結束標誌'\0'也一同拷貝。

個案:1、當陣列長度不夠。假設我們指定了陣列長度,如:u4 str1[7]=;

由於字元組str1的長度為7,所以後面的資訊會丟失,即'\0'丟失。

2、如果在給陣列賦值時,把每個字元單獨用引號括起來,也會丟失'\0'。

如:u4 str1=;

如果希望陣列以'\0'結束,則可以寫成以下三者之一:

u4 str1=; //字串賦值

u4 str1=; //人工新增

u4 str1[8]=; //故意給陣列預留乙個空位

unsignedchar與char或者cstring如何互相

金色潛鳥 mfc,c 語言。cstring 是 mfc 裡的 class,不是 c c 的 基本變數。用 unsigned char 與 char 構建 cstring class 可以呼叫 成員函式 format 從 cstring 物件中提取 字串 存入 unsigned char 與 char...

varchar和char的區別,char 10 和VARCHAR 10 主要的區別是什麼?

char 和 varchar 固定長度 char 或可變長度 varchar 字元資料型別。char n 長度為 n 個位元組的固定長度且非 unicode 的字元資料。n 必須是乙個介於 1 和 8,000 之間的數值。儲存大小為 n 個位元組。char 在 sql 92 中的同義詞為 chara...

c語言中int型變數與char型變數什麼情況下不能互換

其實這種問題,從表面說也沒有什麼特別的意義,因為本來就沒有什麼嚴格意義上的能不能互換的問題。只要能在使用過程中,滿足本來的要求就可以了。例如 在將int型變數轉換為char型時,要考慮到資料的溢位問題等 char轉換為int時,要考慮到它的符號問題。在根本上只要認清它們兩者之間的區別就可以了。int...