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

時間 2021-09-02 07:17:47

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是錢,可...