1樓:善秋芹莫鵑
不是,char
name[20];
說明字元陣列name,20表示陣列的長度,有20個元素。賦值時不一定要20個全部都賦值。
name[20]元素的範圍為name[0]——name[19]。還有char
name[20]若沒有對它進行初始化,編譯器會自動將他初始化為隨機字串的形式。要搞清楚陣列的長度、字串長度。
例如:char
a[10]="abcdei";
陣列長度為10;
字串長度為6;
字串所佔記憶體為7;(因為字串的話,因為結尾有個\0)c語言不能定義未知長度的陣列,更不能給未設定長度的陣列賦值。
2樓:桐菊汗姬
表示最多可以存20個字元,如果是字串的話,因為結尾有個\0,所以字元數做多為19
3樓:獨奕聲釗鸞
你這個是陣列了。
代表的含有20個元素。
我隨便寫舉個例子。name[20]=
裡面就有20個數字。
4樓:崔玉巧求香
那個20表示最多可以包含20個字元。
你可以輸入。
個字元。
5樓:支景明孔茶
巨集定義也是定義為字元陣列的。
字元陣列或位元組陣列可以通用。
6樓:網友
表示最多可以存20個字元,如果是字串的話,因為結尾有個\0,所以字元數做多為19
7樓:
20 個字元,包括乙個字串結尾 '\0' ,只能輸入 19 個字元。
8樓:乙個男人蕩天涯
你這個是陣列了 20 代表的含有20個元素 。我隨便寫舉個例子。name[20]= 裡面就有20個數字。
9樓:網友
那個20表示最多可以包含20個字元。
你可以輸入 0 ~ 20 個字元。
char name[20]是陣列還是字串?
10樓:太叔靜逸牧蕩
char
name[20]是。
char陣列它存放的內容可以看成。
1byte的char
型陣列元素,或。
1byte的整型。
陣列元素。初始化:
charname[20]="abcd_1234";
語句:strcpy(name,"abcd_1234");
語句:for
i=0;i<4;i++)
name[i]
a'+i;name[4]='_';
for(i=5;i<8;i++)
name[i]
1'+i5;語句:
printf("%s",name);
c++中定義char name[20]後,為什麼用printf("%s",name)就能輸出一連串字串?
11樓:網友
%s代表bai字串,name是字元陣列。
的首位址du,也就是字串zhi的首位址。dao所以直接專輸出字串。
c++中定義屬char型陣列即是定義c風格字串。
格式化輸出函式printf第乙個引數中%s代表可變引數部分中對應位置變數為指向字串位址的指標。
在c/c++中陣列的名是儲存該陣列首位址的常量。
需要注意:1)c++中定義內建型別區域性陣列變數,不提供預設初始化。這裡char是內建型別,如果不初始化其中儲存的是記憶體中的隨機數。
2)c++不會對陣列進行越界檢查,而是將越界交給os,如果os檢測記憶體不可讀或寫,對齊進行讀寫os核心會丟擲中斷異常。
3)c++中c-style字串讓然是以'\0'空字元為結束標誌。printf中的%s仍然會在輸出的時候從name指定的記憶體位置開始讀取資料再交給現存快取以在顯示器上顯示。不初始化或不以'\0'結尾的字串將輸出亂碼,這是如果越界讀取到了不可讀的記憶體,將會報段錯誤(unix核心)或記憶體不可讀(windows)異常以終端程式。
12樓:
%s的概念 就是輸出字串。
字串必須要以'\0'結尾。
也就是如果你。
的name[20]中有乙個位置是'\0'的話專printf("%s",name)就能正確輸出如果你是這樣屬char name[20]=;由於name陣列中沒有'\0'你對name指標用printf函式就會出錯。
13樓:網友
%s是從起始位置輸出字元直到遇到\0為止,合法,陣列在函式中做實參時會轉成指標。
14樓:網友
1,%s 是輸出字串;%c,只輸出單個字元。
2, 定義name是陣列,name表示陣列的第乙個字元的位址。
15樓:網友
陣列傳遞給printf函式當引數時,自動退化成指標,printf函式輸出指標指向空間,預設到'\0',結束,所以合法。
16樓:wang非在心上
這個復就不需問為什麼啦!!因製為這是它的功能bai啦!!就像1+1為什麼等於du2了。你只需要zhi記住它的作用就是dao 用來輸出資料的!!
那個%s是格式識別符號啦!!就是規定後面的引數是以怎樣的格式輸出的!!另外還有其他幾種常用格式識別符號,%c、%d、%o
17樓:網友
printf函式本來就是c中的函式 。。
char name[20]; 對這個結構體定義進行解釋說明
18樓:眭凝雁東念
char
name[20];是一句變數定義語句,該變數定義語句描述了乙個陣列(array),即這樣乙個陣列:
該陣列由20個char型別的變數組成,陣列名為name,並且這個陣列可能會被用來存放某東西的長度不超過19的名字字串。
c語言規定陣列在記憶體中是一段連續的有序的記憶體儲存空間。
上面那語句就是。
表示將要使用這樣的形式的空間,這個空間由20個大小為1位元組的小空間組成,因此這個空間的總共大小以位元組單位計有20,以位單位計有160。
19樓:尤銘衣理
這是定義了乙個陣列不是結構體,char是型別name是陣列名20代表陣列元數的個數也可以說陣列的長度。
20樓:保湛霞蕢醉
你要什麼說明,建立乙個型別為char的名為name的長度為20的陣列?
字元陣列賦值的問題
21樓:俎飲桑志澤
變數賦值好比提籃子買菜,只要籃子能裝下菜,就可以用。(籃子=變數,菜=值)
char型別只佔乙個位元組。
int佔四個位元組(32位機)
所以,len=buff[0];//這個是將字元陣列中的第乙個字元賦給乙個整型變數。
len?合理、合法。
22樓:鐵恨嶽秀慧
len=buff[0];buff陣列初始化後,這樣賦值也沒什麼問題,畢竟整形範圍比char範圍大。
但是,傳給len的值是ascii碼。
23樓:網友
賦值可以直接 =「zhoujie」,這個函式是複製函式,是為了方便有時候在乙個陣列裡操作會改變我們不期望的改變,所以複製乙個副本。
字串和字元陣列幾乎差不多,所以可以char *s="afasfasf",s="asfdasf",也可以單個元素賦值。
24樓:看看窗外飛仙
name是乙個陣列,指向一塊大小為20*sizeof(char)記憶體,用來儲存字元,這裡name是乙個靜態的,長度不可變的陣列,不是乙個通常意義上的指標,換句話說,這個指標只能指向這塊大小為20*sizeof(char)的記憶體,這個地方name不能被賦值,則必須使用strcpy把後面的字串中的字元乙個乙個複製到陣列中。
c\c++中通常意義上表示字串是使用的字元陣列,c\c++中的字串是一串以'\0'為識別符號的char型陣列,例如,char * p = "abcdefg",那麼p指向一串不可修改的char型陣列,char s[20] = 「abcdefg」相當於以下賦值:
char s[20] = ;
那麼使用printf對p和s進行輸出時(printf(p);printf(s))效果一樣。
只需記住c\c++中沒有字串這一獨立的資料型別,字串時使用字元陣列進行表示的即可。
25樓:網友
1,第乙個問題:strcpy
對於陣列來說,可以在定義的時候進行初始化直接賦值的,如struct stu student = ;
如果是先定義,再賦值就不行了,因為定義同時初始化是在編譯階落進行的。
而隨後的賦值是在執行期間,只能用函式進行字串的copy才行。
2,char name[20] = ;
和char name[20] = "zhoujielun";
是一樣的,只不過前者是乙個字元乙個字元的進行初始化;後者是近字串進行。它們都是在定義的時候進行初始賦值的。
字串都是以雙引號進行表示的】
strcpy(,「zhoujielun」);
26樓:網友
這些都是c語言中的規定,你可以再看一下c!希望 能幫助你!
c語言中用二維陣列輸入n個學生的名字,求**,不要,char name[n][20],總是說未
27樓:浮華落盡
這種陣列定義方式要求編譯的時候就要確定大小,即錯在n上,建議使用動態記憶體。
c語言相關 這個語句裡的[20]是什麼作用 ,第三行的char name[20],跟申明結構體陣列的數量有關係麼
28樓:網友
char name[20],// 20個char
struct stu stud[20]; // 20個 stu, 當然每乙個stu中有20個char
29樓:兩葉障目
name中的就是陣列的大小,,也就是你可以輸入最多20個字元,
字元指標,字串和字元陣列的區別
定義 char ch 10 char ch2 char str 以及 string 1.全域性的變數和函式內的static變數,存放在記憶體堆區域。2.全域性的陣列和函式內定義的static的陣列,存放在記憶體堆區域。3.區域性變數,陣列,存放在記憶體的棧區域。4.定義char ch 10 時,如果...
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 每行結尾的 僅僅是為了連線字串使用的,如果一個字串過長,寫在一行比較不合適,就在該行結尾處加上一個反斜槓 就可以在下邊的行繼續寫這個字串...
C 中字元陣列0是什麼意思,在C 中字元陣列和字串有什麼區別
在c 中,只有數值在128以內的部分ascii碼char才能被顯示出來 char a 0 0 的ascii碼為48小於128是可以被顯示出來的,並且顯示為0 用單引號的寫法是由編譯器來幫你做字元轉換的,即把 0 轉換成了48放在一個char變數裡 char a 48 實際上我們可以這麼寫,同樣可以達...