C語言問題

2022-12-10 22:30:21 字數 893 閱讀 9433

1樓:匿名使用者

#include -----函式要用到sizeof#include ----函式要用到strlenmain()

; int i,j;

i=sizeof(a);j=strlen(a);

printf("%d,%d\n",i,j);

} 這個列題輸出的是 9,8.

因為 ----sizeof(a)表示字元組a裡元素所佔用的位元組大小a裡有9個元素每個元素佔1個位元組所以 第一個答案是9。

----strlen(a)表示字元組a裡的長度也就是有多少個元素strlen遇到'\0'才會退出。。也就是不算上『\0'所以結果是8,。。

strlen這個函式是為了方便計算字串的長度。。

2樓:匿名使用者

sizeof() 返回字串的長度,不包括'\0';

strlen() 返回變數所佔記憶體在大小,包括'\0'在內;

3樓:匿名使用者

對於指標,sizeof操作符返回這個指標佔的空間,一般是4個位元組;而對於一個陣列,sizeof返回這個陣列所有元素佔的總空間。

a是一個字元型陣列。c/c++規定,對於一個陣列,返回這個陣列佔的總空間,所以sizeof(a)取得的是字串佔的總空間。字串中,共有5個字元,所以a陣列的長度是5,所以sizeof(5)=5*sizeof(char)=5。

而strlen不區分是陣列還是指標,就讀到\0為止返回長度。而且strlen是不把\0計入字串的長度的。

4樓:

c的字串都是以\0結尾的,這個\0也佔了一個位元組,

所以,第一個sizeof(a)是輸出陣列的大小,當然是5個位元組了;

而第二個strlen是不計算\0的,所以是4個字母。

C語言問題C語言問題,C語言問題C語言問題

include include int main b k p b k 0 puts b return 0 c語言問題c語言問題 include int main int h,m scanf d d h,m printf s num h if m 0 else printf o clock print...

C語言問題,C語言問題C語言問題

這題考的是自動型別轉換,由編譯系統自動完成,轉換是 向上 靠的 舉個例子 include stdio.h void main 你編譯一下就會有警告 conversion from double to float possible loss of data 也就是說系統預設轉化了a,b的資料型別為do...

c語言問題,C語言問題

1 c2 a 3 d4 a 5 d6 b 7 a8 a9 d c語言問題 include define n 30 typedef struct student student r n int main void num 1 for i 0 ir max score max j if max i if...