急求答案char a 12abcdefgstrlen a 的結果為多少

2021-09-02 07:17:49 字數 3796 閱讀 3901

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個字 就是 花來雁落,...