第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C語言基礎問題,這里不理解

C語言基礎問題,這里不理解

C#
白衣染霜花 2018-12-06 22:45:14
include <stdio.h> main() { int i=2,j=3,k; k=i+j; { //這里突然出現的大括號是什么意思? int k=8; if(i=3) printf(“%d”,k); else printf(“%d”,j); } printf(“%d%d”,i,k); } 運行結果是835 主要就是看不懂這個大括號是什么意思,希望可以簡單講一下程序運行的步驟。謝謝
查看完整描述

8 回答

?
慕斯王

TA貢獻1864條經驗 獲得超2個贊

那這個程序是怎么運行的呢?為什么答案是835?為什么定義了兩次k?為什么代碼塊外面的i變了,k卻沒變?

查看完整回答
反對 回復 2018-12-24
?
侃侃無極

TA貢獻2051條經驗 獲得超10個贊

幫你格式化:

include <stdio.h>
main()
{
    int i=2,j=3,k;
    k=i+j;
    { //這里突然出現的大括號是什么意思?
        int k=8;
        if(i=3)
            printf(“%d”,k);
        else
             printf(“%d”,j);
     }
     printf(“%d%d”,i,k);
}

如果誰故意寫成這樣,那就是找抽型。if(i=3)肯定是true,因為i是正數,所以輸出了8,最后那個print的時候k又變成了5了,因為這個兩個k的作用域不一樣,那個大括號里面的k的作用域僅限于大括號里面。

以上回答是我腦補的,在下并不熟悉C語言

查看完整回答
反對 回復 2018-12-24
?
暮色呼如

TA貢獻1853條經驗 獲得超9個贊

謝謝,可是可不可以解答一下我的疑問(ㄒoㄒ)

查看完整回答
反對 回復 2018-12-24
?
HUX布斯

TA貢獻1876條經驗 獲得超6個贊

@怡紅公子0526:

如果誰故意寫成這樣,那就是找抽型。if(i=3)肯定是true,因為i是正數,所以輸出了8,最后那個print的時候k又變成了5了,因為這個兩個k的作用域不一樣,那個大括號里面的k的作用域僅限于大括號里面。

以上回答是我腦補的,在下并不熟悉C語言

查看完整回答
反對 回復 2018-12-24
?
皈依舞

TA貢獻1851條經驗 獲得超3個贊

@會長: 謝謝

查看完整回答
反對 回復 2018-12-24
?
喵喵時光機

TA貢獻1846條經驗 獲得超7個贊

i 變了是因為 if(i=3)

這個語句是 把 i的值賦值為3,再判斷i是否為正數

k 沒變是因為樓上所說,k的作用域不一樣。大括號里和大括號外的是兩個k,所以括號外的k 不變。

查看完整回答
反對 回復 2018-12-24
?
明月笑刀無情

TA貢獻1828條經驗 獲得超4個贊

此處的大括號代表這里新開辟了一個作用域。在括號內重新定義的k,只在這個作用域內起作用,在這個括號中作用域外部的k的優(yōu)先級是沒有這個內部定義的k高的。舉個形象的比喻,在這個小城鎮(zhèn)(作用域內),我(作用域內的k)才是老大!但是出了這個小城鎮(zhèn)(作用域外部),你(作用域外的k)就是老大了!

至于i=3,這是一條賦值語句,顯然是成立的,必定為ture。在此需要注意的是,i并沒有重新定義,只是給作用域外定義的i重新賦值,這個i,還是作用域外的i。

第一個printf輸出的是作用域內的k,值為8。第二個printf輸出的是作用域外的i和k,值為3和5。

目測這是一道c語言類似于國家二級計算機考試的題目。純屬是為了考你對細節(jié)的理解而出的,正兒八經寫程序不會像他這樣寫的,這樣寫的代碼非常糟糕。

查看完整回答
反對 回復 2018-12-24
?
飲歌長嘯

TA貢獻1951條經驗 獲得超3個贊

這個大括號的意思是表示一個代碼段,沒什么意思,相當于文章中的一個段落。

查看完整回答
反對 回復 2018-12-24
  • 8 回答
  • 0 關注
  • 730 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號