1樓:俎靜皖
還是再回答下吧,希望能幫助到你;
char a[12]; // 未初試化,那麼 a 中的東西,不確定;
char a[12] = ; // 給出的初始值,少於陣列大小,後面的一律初始化為 0
// 如果,初始值的個數多於 陣列大小,錯誤!!
char a[12] = ; // a[7] = a[8] = .. = a[11] = 0 ( '\0' )
好吧,這樣,strlen ,數到 '\0' (0) 就不再數了;所以,結果 7;
如果是這樣的char a = ;
上來,我就是看成這了,所以,認為,結果不確定,sorry、、
2樓:匿名使用者
7,strlen是到\0位置(\0不算在內)遇到問題的時候程式設計試一下。
#include "stdafx.h"
#include "stdio.h"
#include "string"
void main()
;printf("%d", strlen (a));}
3樓:匿名使用者
strlen是到\0位置(\0算在內),這個char的\0是在‘g’後面,所以長度是(7+1)=8;如果是sizeof的話應該是定義的陣列的長度,是12。
char x[]={"abcd"}和char y[]=12:{'a','b','c','d'}有不同嗎
4樓:匿名使用者
x的大小為5,包括4個字母和字串最後的結束符 '\0'
y的大小為4,包括的只有4個字母
順便說一句,後面的寫錯了,應該是
char y = ;
5樓:記住一座城
x末尾有'\0',y沒有
char a[]={'a','b','c','d','e','f'} char b[]="abcd
6樓:阿爾邁凡
陣列a儲存
'a' 'b' 'c' 'd' 'e' 'f'
陣列b儲存
'a' 'b' 'c' 'd' 'e' 'f' \0陣列a是字元陣列
陣列b是一個字串
一般字串以說以\0結尾的
所以陣列a不算是字串
長度上也不相同
因為陣列b多了個\0
7樓:旭
char ch="abcd";相等於char ch="abcd\0";
8樓:匿名使用者
都是存放了字串abcdef,這是字串陣列,長度相同吧
char a[]={a,b,c,d}; char a[]="a,b,c,d"; 有區別嗎
9樓:匿名使用者
很大區別,前者a的大小為4,分別是'a','b','c','d'
後者估計你寫錯了吧,應該是 char a = "abcd"; // 這裡a的大小為5個位元組,除了前面4個字母外,還有一個字串結束符 '\0'
10樓:匿名使用者
你的char陣列宣告有問題
你可以這樣
char a=;
char a= "a,b,c,d".tochararray();
如果說區別的話就是針對他們在記憶體中處理時的差異了
11樓:匿名使用者
第一個:a[0]='a' a[1]='b' a[2]='c' a[3]='d' a[4]=0
第二個:a[0]='a' a[1]=',' a[2]='b' a[3]=',' a[4]='c' a[5]=',' a[6]='d' a[7]=0
char a[]="abcdef"; char a[]="{'a','b','c','d','e','f'}; a和b陣列長度比較
12樓:
前者為7個字元,a b c d e f 空字元
後者為6個字元:a b c d e f
13樓:匿名使用者
a陣列是字串陣列。長度是sizeof(a)=7//包括a,b,c,d,e,f,'\0'。這個'\0'是在編譯的時候編譯器給加進去。用以限定字串的邊界。
b陣列是普通的字元陣列。長度是sizeof(b)=6//包括包括a,b,c,d,e,f。
14樓:匿名使用者
有意思。怎麼一天遇到兩個類似的問題呢?好吧,在這重複一遍:
在c中,字元和整數並沒有什麼本質的區別。char可以看成是1個位元組的整數,short可以看成2個位元組的寬字元,int可以看成4個位元組的寬字元。
所以,'a'表示一個字元'a','ab'則表示一個2個位元組的整數或者寬字元,'abcd'則表示一個4個位元組的整數或寬字元。但是隻支援1位元組、2位元組、4位元組。
char c='a'; //當然沒錯了
char c='ab'; //相當於整數 char c=0x6162。因為'a'字元表示0x61,'b'字元表示0x62。但因為'ab'是2個位元組,所以賦給char時會出整數截斷的警告。
char c='abc'; //相當於整數char c=0x00616263,也會出警告。
char c='abcd'; //相當於整數char c=0x61626364,也會出警告。
char c='abcde'; //超出最大整數字節長度4。當錯誤處理
設有如下變數定義char aa[ ][3]={‘a’,’b’,’c’,’d’,’e’,’f’};
15樓:匿名使用者
char (*p)[3]
我們可以可以看到p是指向一個有三個元素的字元陣列的指標。
那麼當p++的時候,相當於跳過指向的陣列。
再來看一下,char aa[ ][3]=;
我們可以發現aa是二維陣列,而p指向的是一維陣列。
所以我們去分解aa讓他變成兩個一維陣列
和p在++操作前其實是指向前面那個一維陣列,當p++之後,p此時其實指向了,那麼**p就是取當前陣列的第一個字元,我們可以知道那個字元就是‘d’。
清楚了嗎?
你會有疑問為什麼二維陣列為什麼可以分解成兩個一維陣列,因為陣列不管是幾維其實就是一塊連續的記憶體。‘d’其實就是接在‘c’的後面。懂了嗎?
char str[]="abcd"與char str[]={'a','b','c','d'}一樣嗎?
16樓:匿名使用者
不一樣。
char str="abcd" 這個屬於字串陣列,末尾以"\0”結束。
char str=這個是字元陣列,陣列裡有4個元素。
一個是字串,一個是字元,所佔的記憶體也不同。
c中你可以用 sizeof(陣列名)測試。不同軟體會有不同的答案,不過並不影響判斷。
17樓:風z使者
不一樣,不信可以試試:sizeof(str)看看是不是相同就是了(搞錯了,這樣返回的是指標的大小...不能做判斷依據)
用了char str="abcd"," "會自動加\0在最後
編譯器會給字串最後加個\0,表示字串的結束,以便輸出字串的時候知道什麼時候結束
18樓:匿名使用者
不一樣c literal 字串有一個\0結束符。
char str="abcd" 等價於 char str=,實際上佔用5bytes記憶體。
char str= 佔用4bytes記憶體。
急求答案答案大謝,急求答案! 謝謝大佬
郭敦顒 郭敦榮回答 用輸入對話方塊輸入圓的半徑,則結果在輸出對話方塊中顯示圓周長的結果,這應是一個自動計算輸入輸出的程式。那麼你就按程式輸入你所需要的半徑r的值,然後按 確定 鍵,之後在輸出框應顯示 半徑為r的圓的周長為 2r 精確到小數點後4位有效數字 例中輸出框顯示的是 半徑為5的圓的周長為 3...
急求答案關於風溼的,急求答案啊!!!!!
開朗點,開心,自然會好的.你去挖點 倒掛刺 的根回來煲豬腳吃就可以了,一點 都沒有,最多吃上兩次就有效,我的這個方法很有效,十年前我爸爸也是腿上有風溼,長的好大一個包,走路都成問題了,那時我只有十幾歲,是我們村的一個老中醫說的,我爸只吃了三四次,到現在都很好,沒有再得過 倒掛刺 我們家裡是這樣叫這名...
求答案!!謝謝,求答案,急,謝謝
0o壹次心 杯水車薪 人才濟濟 火 貨車 冒 貓 三 3個圈 丈 獎狀的狀近似音 花好月圓 比翼雙飛 希望我的回答對您有幫助,滿意請採納,謝謝。 羅亞敏 杯水車薪,圖1是杯子,即 杯 圖2是一杯水,即 水 圖3是轎車,即 車 圖4是錢,可以理解為薪金,即 薪 人才濟濟,圖1是人,即 人 圖2是錢,可...