1樓:好嘞啊啊啊啊
你定義a[5] 陣列元素應該是 a[0] a[1] a[2] a[3] a[4] 當你使a[5]="abcde" \0就沒地方儲存了,所存放的不是字串。
2樓:夏艾溪
char a[5]這種陣列的定義方式,編譯器要求陣列大小在編譯期已知,就為5。
字串一定是以'\0'結尾。所以你只能輸入4個字元,最後乙個字元'\0'由編譯器填補。輸入5個字元,如果最後乙個不是\0,就會報錯,不信試試。
3樓:駐伊危樓
\0是系統自動新增的,不需要程式設計師人為新增/
4樓:網友
char a ="abcd";
sizeof(a) = 5;
這樣賦值才有\0
char a = ;
sizeof(a) = 4;
這樣是沒有\0的。
char a[5] = "abcde";//會報錯char a[5] = ;//沒問題。
儲存字元陣列中的最後乙個字元必須是'\0'?
5樓:
這個不一定,不同的程式設計工具對字串的定義是不同的在早期的dos功能呼叫中,彙編呼叫的輸出字串是以$結尾的而pascal語言是沒有結束符而在字串頭上放乙個長度在c語言中,字串是以'\0'結尾的,但不是必須的(除非你要呼叫字串處理函式)
c語言中,「儲存字元陣列中的最後乙個字元必須是'\0' 」,這句話為什麼是錯的?
6樓:it圈新鮮事
字元陣列最後乙個不是\0,只有字串才是。
7樓:網友
字元陣列最後乙個字元未必要是'\0'
字串才是。
判斷題: 字元陣列不要求它的最後乙個字元為'\0',甚至可以不包含'\0'?
8樓:月光下的
您好,很高興您的問題。
在c語言中,對於字元陣列進行定義是,可以同時給陣列中的變數賦初始值,也可以只定義,那麼系統就自動給每乙個陣列元素賦初始值為\0。字元陣列中可以存放單個的字元,也可以存放字串。
若存放的是字串,那麼在最後一定要留乙個陣列元素用來存放字串結束的標誌\0。
所以個人認為上面的判斷題是正確的。
關於字元陣列中的結束識別符號『\0』,是怎麼加啊的
9樓:網友
直接在字元陣列最後乙個字元後面加上'\0'。
例如:char a[10],需要存放「hello」字串:a[0]-a[4]分別存放h,e,l,l,o;a[5]存放'\0';
在c語言中沒有專門的字串變數,通常用乙個字元陣列來存放乙個字串。字串總是以'\0'作為串的結束符。因此當把乙個字串存入乙個陣列時,也把結束符 '\0'存入陣列,並以此作為該字串是否結束的標誌。
有了'\0'標誌後,就不能再用字元陣列的長度來判斷字串的長度了。
10樓:林明泉
定義char a[30],如果沒有初始化,從a[0]到a[29]都是'\0',也就是數值0(強制型別轉換為int就等於0);
char a[30] = "hello",從a[5]到a[29]都是'\0',a[30]未知;
另外你可能不明白:char a = '\0'; 表示式(int)a==0; 為true;
0』是字串結束的標誌,比如定義:char a = "hello"; 則a[5] = '\0', a[6]未知。
判斷題: 字元陣列不要求它的最後乙個字元為'\0',甚至可以不包含'\0'.
11樓:水亮盛辛
首先要區分,字元,字元陣列,字串的區別。
字串預設的最後會有'\0'
chark=
a';/定義的乙個字元變數,並賦值為'a'字元char
a[10];
定義乙個size為10的字元陣列,未初始化char
b[10]=;
定義字元陣列,並用一組字元初始化,此時後面不會自動加上'\0'
charc[10]=;
定義字元陣列,並用「字串」初始化(雙引號內部的是字串),字串後面會自動加上'\0'
此外:對於char
a[10];
gets(a);
scanf("%s",a);這兩種方法為a的元素賦值,預設的最後會有'\0'.
這兩個函式都人為輸入的是字串。
for(inti=
0;i<
num;i++)
scanf("%c",a[i]);//這種方法,是每次讀入乙個字元。這時不會自動在後面加上'\0'
字串陣列末尾才有'\0'結束符號嗎?字元陣列有沒有
12樓:匿名使用者
字串的儲存可能會使用到字元陣列,這個時候為了指標遍歷訪問不出錯會加上「\0」,但是如果只是用於儲存字元的話可以乙個個查詢對應的陣列元素,它需要有確定的空間範圍,這樣訪問不會出錯。另外並沒有什麼專門的字串陣列,除非是多維陣列用來儲存一系列的字串。
13樓:愛在冬天之歌
是的!a= 其實等於a=;
你要是用sizeof(a)看的話其大小是等於4由於很多字串處理函式和巨集,如strcpy,memcpy之類的都是以字串的結束符作為函式完成的終點,所以字串陣列都要以結束符結束。
其實數值陣列也是一樣的,要是沒有結束符也會越界,只是數值數值一般不會被用在strcpy之類函式中。
最小的一位數是0還是,最小的一位數是0還是1?
我們知道,位數表復示一個整制數所佔 有數位的個數 數位是指一個數的每一個數字所佔的位置。對於3082這個數而言,我們說它是4位數。如此看來,0也佔一個數位了。但是記數法裡有個規定 一個數的最高位不允許是0,為什麼要加上這個規定呢?如果沒有這個規定的話,那麼 0 就應該是最小的一位數,因此,00是最小...
asp函式提取倒數第一位的字元
先計算出字串的長度 函式名 strlength 作 用 求字串長度。漢字算兩個字元,英文算一個字元。參 數 str 要求長度的字串 返回值 字串長度 function strlength str on error resume next dim winnt chinese winnt chinese...
想要復出的三位明星,最後一位徹底沒戲,你知道他們都有誰嗎?
在自己演藝事業達到高峰期,最後卻親手斷送自己道路的明星,有范冰冰,李小璐,高虎,張默,黃海波等等。這三位明星是范冰冰,李小璐和吳秀波,其實范冰冰和李小璐還是有可能成功復出的,畢竟他們造成的影響並不大,這兩年觸碰底線的明星太多了,范冰冰 李小璐 吳秀波,還有早些年吸毒的明星,既然明星有起到帶頭作用的,...