1樓:匿名使用者
這個主要是考查的是位元組對齊。
//這裡宣告了乙個聯合體結構,裡面有兩個成員,他們公用乙份記憶體空間union uu
;//宣告了乙個結構體,b1是結構體mm的例項化物件struct mm
b1;b1.y.a = 10;//為聯合體物件y賦值b1.p = "student";//指明指標指向的內容printf("%d",sizeof(struct mm));
執行結果是:8
原因是:int變數佔2位元組,float佔4位元組,在聯合體中他們公用乙個記憶體,所以整個聯合體記憶體為4位元組;char*為兩位元組;結構體所佔記憶體:char*的2位元組+空閒2位元組+聯合體物件4位元組 = 8位元組。
為什麼有空閒兩位元組,是因為位元組對齊的原因,變數的記憶體存放空間的起始位置需為變數長度的整數倍,在char*之後,位置為2,需要填2位元組才能成為聯合體長度4的整數倍。
2樓:alexgz玉麒麟
union uu: 聯合體
struct mm:結構體
bl:結構體變數
bl.y: 結構體變數bl中定義的聯合體變數bl.p: 結構體變數bl中定義的指標
3樓:匿名使用者
union uu 是共同體,uu 是共同體名 stryct mm是結構體,mm是結構體名,b1是mm這個結構體的變數名。b1.y.
a表示對於的聯合體中的整型a,,b1.p則是結構體中的
c語言字串問題,初學者求詳細解答。
4樓:yx陳子昂
a[i++]是利用i++先取值後自加的特性,把迴圈變數i的自加整合到乙個語句裡面
拆開看就是 a[i] != '\0'; i=i+1; 這兩條語句。
這個迴圈就是把a 裡面沒有小寫字母轉換成大寫字母。
5樓:最大的寶寶
陣列a存放的是源字串,也就是使用者輸入的,待處理的串。b用於存放轉換後的xf。轉換時,用whilde迴圈對a的每乙個元素依次作出判斷,結果存放在b[i]。
a[i++]是兩個運算的組合,一是a[i],二是i++,這麼寫比較簡潔。所以源**中用a[i] != '\0'判斷沒有到達字串尾後,再i++以處理下乙個字元。
如果a[i]已經到了串尾,這個while迴圈也就結束了,於是繼續後面的printf。
6樓:果糖並不吃甜
首先,要先知道陣列的一些基礎知識,比如這段程式中的a[20],是乙個長度為20位元組的字元陣列,a[0]就是這個陣列中存放的第乙個字元,a[1]是第二個,a[ i ]是第i+1個。
這個do...while做的事情就是,從a陣列的第乙個字元開始,到最後乙個字元結束,判斷各個字元是否是小寫字母,如果是小寫字母,就把它變為相應的大寫字母。
i一開始定義為0,那麼第一次迴圈,a[i]就是a[0],迴圈內操作結束後,判斷a[0]的下乙個字元是否等於\0,如果是就跳出迴圈,如果不是就繼續,a[i++]相當於a[i=i+1],經過這一步,i變為1,再次進入迴圈,對a[1]進行迴圈內操作。
7樓:阿四哥
c語言字串的學習,輸入指定字串,並且計算字串的位數
c語言問題求詳細解答,謝謝 25
8樓:穆詩
能正確編譯和執行了,不知可達到你要求,望採納!
#include
#include
#include
#define n 100
void printarray(int a,int n)void main(void)
{int a[n];
int i;
srand(time(null)); //initialize pseudo number seed
for (i=0; i
c語言問題,求詳細解答,謝謝
9樓:
break就是跳出一層迴圈,如果你在三層他就跳到二層,二層就跳到一層;
continue不跳出迴圈,而是如果你在乙個迴圈的第i次中遇到了乙個continue,他就不管continue後面的語句,直接執行第i+1次迴圈,還是這一層迴圈。
10樓:
個人理解
break:跳出當前所在迴圈體(指的是for\while語句乙個整套迴圈結構)
continue: 結束本次迴圈,不跳出當前迴圈體,繼續下次迴圈b、break語句只能跳出最內層迴圈 其實說的就是迴圈體的意思 自己懂了意思最好
c語言題目,求詳細解答步驟,謝謝。
11樓:匿名使用者
x=5,y=10, 呼叫fun時,開設臨時變數x和臨時變數y,與主程式中並非同一變數,因此內可以寫成:void fun(int xx,int *yy)
fun: xx=5,yy指向y,*yy即取主容程式中y的值,給*yy賦值即給主程式中y賦值, xx+=*yy;[xx=5+10=15], *yy+=xx;[y=y+xx=10+15=25], 返回時xx和yy被捨棄, fun(x,&y);[x=5,y=25]
fun: xx=25,yy指向x,xx+=*yy;[xx=25+5=30], *yy+=xx;[x=x+xx=5+30=35], 返回時xx和yy被捨棄, fun(x,&y);[x=35,y=25]
printf輸出:x=35,y=25
c語言作業,求詳細解答
12樓:匿名使用者
題目最好自己做,不會的看書或者查資料,對你以後有幫助的,不要總是讓別人幫自己做,要不連基礎都不會,找工作有問題的。
13樓:
1:62:4
3:b,b
4:15:457810
題目1:d,a,c,c,b,c,d
14樓:匿名使用者
這麼簡單的題目最好自己做
15樓:冷火清水
1 a=0,後面應該不參與計算吧··
c語言 求詳細答案?
16樓:無知的小卒
選c,改變p的位址相當於記憶體洩露。
17樓:匿名使用者
a.正確
b.正確
c.正確
d.不正確,實際上a陣列有11個元素
18樓:匿名使用者
應該是d吧 a的大小是11 所以最大能存放11個字元
19樓:
d錯誤,能存放11個字元才對。其餘均正確。
20樓:璇是彩虹
ghjkkmkllllikkll
c語言初學者的問題,c語言初學者的乙個問題
問題小一 上面那位回答很詳細了 問題小二 那是自己定義的,你可以改其他數字 問題小三 不設並不是任意長度,看你自己定義的型別 基本型別包括位元組型 char 整型 int 和浮點型 float double 定義基本型別變數時,可以使用符號屬性signed unsigned 對於char int 和...
C語言初學者,學C語言應該看什麼書
1全部 c語言教程 ira pohl,機械工業出版社。如果你覺得譚浩強那本你吃透了的話,不妨看看這本,你會發現,其實你還菜得很。這書不難,但是開眼。看了這本可以說c才有了一定基礎。如果想繼續c的話,c專家程式設計 c程式語言 反覆多讀,才會精通c。程式設計演算法的書,如果你數學還不錯,就 演算法導論...
c語言初學者應該看什麼樣的書呢,C語言初學者應該看什麼樣的書呢?
青水之畔 個人感覺國外的教材會比較好一點,畢竟,c語言還是以英語的思維習慣來的。開始學的話給你推薦幾本 1 c語言大全第4版 herbert schildt 這本應該說是比較經典的了。2 c語言詳解 第6版 problem solving and program design in c sixth ...