其實是printf("等于");

創(chuàng)新互聯(lián)公司主營沾化網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶App定制開發(fā),沾化h5微信小程序開發(fā)搭建,沾化網(wǎng)站營銷推廣歡迎沾化等地區(qū)企業(yè)咨詢
先執(zhí)行的,然后再執(zhí)行的scanf("%d",?c);
只不過scanf的時候并不是從屏幕上scanf的,而是從緩沖區(qū)scanf的
你的5其實在printf之前先進入了緩沖區(qū),然后再printf等于,然后再從緩沖區(qū)scanf那個5
如果要想得到你那個效果的輸入輸出,可以試試下面的代碼
#include?stdio.h
void?main()
{
int?b,?c,?f;
char?a;
scanf("%d?%c",?b,?a);
printf("%d%c",?b,?a);
if?(a?==?'-')
{
printf("等于");
scanf("%d",?c);
f?=?b?-?c;
printf("%d?%d",?c,?f);
}
}
不管什么終端,執(zhí)行C語言代碼的順序都是差不多的
首先執(zhí)行預(yù)處理,也就是#define
#ifdef之類的語句,其次是全局區(qū)變量的內(nèi)存分配,即main函數(shù)外面定義的變量的定義及賦值等等,然后執(zhí)行main函數(shù),在執(zhí)行main函數(shù)中調(diào)用的那些函數(shù),再執(zhí)行調(diào)用函數(shù)中的調(diào)用函數(shù)。最后編譯鏈接生成
.o文件
是第一個執(zhí)行完再執(zhí)行第二個
遞歸調(diào)用可以這樣理解,就是想像有很多個函數(shù)的復(fù)制體,每次調(diào)用自己都是在調(diào)用一個復(fù)制體,一直到滿足
if(start=end)
return;
然后再一層一層返回。
for多重循環(huán)的執(zhí)行順序是先執(zhí)行內(nèi)部循環(huán),再執(zhí)行外部循環(huán)
通過對代碼進行等價轉(zhuǎn)換,按照上述原理即可知道代碼的執(zhí)行順序
對于上面代碼:
for(i=0;i8;i++)
for(j=0;j10;j++)
scanf("%d,%d",i,j);
它等價于下面
for(i=0;i8;i++){
for(j=0;j10;j++){
scanf("%d,%d",i,j);
}
}
從上面可以看出,每執(zhí)行完一次j循環(huán),i的值才增加1
但是注意,該代碼有一個陷阱:scanf函數(shù)會改變i和j的值
實際執(zhí)行順序會受用戶輸入的i、j值的不同而不同
對于下面的代碼
for(i=0;i8;)
min_m(i++)=i
for(j=0;j8;j++)
它等價于下面的代碼:
for(i=0;i8;){
min_m(i++)=i
}
for(j=0;j8;j++){}
會先執(zhí)行min_m函數(shù)8次 然后再執(zhí)行j循環(huán)
注意,該代碼有一個問題,就是min_m函數(shù)的返回值必須是一個左值。
這意味著某些變量的值發(fā)生了更改,可能會影響到循環(huán)。
本文標(biāo)題:c語言順序執(zhí)行函數(shù)代碼 c語言順序語句
本文URL:http://www.yijiale78.com/article12/ddjggdc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計、企業(yè)建站、網(wǎng)頁設(shè)計公司、定制開發(fā)、網(wǎng)站導(dǎo)航、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)