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記憶體。
急求英語閱讀答案,急求英語閱讀答案
66,a 67,c 68,a 69.d 70.c 祝你進步,請採納,謝謝 英語閱讀理解,急求答案!1.we will move to a new i don t want to move.neighborhood 我們要搬去一個新的街區,我不想去。2.i think the roses will n...
求作文完整答案!急,求作文完整答案!急!!
校園裡的記憶 復,很散亂,很平淡 制 有快樂bai,也有悲傷。平du淡中透zhi著幸福,透著憂傷。閉上dao 眼睛,依昔清楚的記得那天的情景 校園裡梧桐樹綠色的樹葉,在微風中嘩嘩作響,空氣中充盈著植物特有的清新味道。教學樓上一群稚氣的孩子正在慶祝這期末考試的結束,那份輕鬆的心情似乎很久沒有過了,從她...
謎語急求答案謝謝了,急求答案 謝謝
答案1 花來雁落,夜靜人思 花飛花落花滿天 1 取第1個字 情來情去情隨緣 2 取第2個字 雁來雁去雁不散 3 取第3個字 潮起潮落潮不眠 4 取第4個字 夜深明月夢嬋娟 1 取第1個字 千金難留是紅顏 2 取第2個字 若說人間有苦短 3 取第3個字 為何相思難剪斷 4 取第4個字 就是 花來雁落,...