關於C語言簡單問題,關於C語言一個簡單問題

2022-11-25 11:15:54 字數 2780 閱讀 5929

1樓:匿名使用者

c語言有兩個標準,c89 89年出的,c99 99年出的c89規定,在任何執行語句之前,在塊的開頭宣告所有區域性變數。

在c99以及c++中則沒有這個限制,即在首次使用之前,可在塊的任何位置都可以宣告變數。

編譯結果和c語言的編譯器實現有關,你用的可能是較老的c編譯器,只支援c89規定。簡單的講就是老的編譯器還不夠智慧。雖然比較死板但是能幫你養成好的程式設計風格。

2樓:滄海雄風

你用的vc6吧?

而且檔案字尾名是 .c 對吧?

vc6的 c編譯器規則過於陳舊 必須在全部在開始宣告不能像c++一樣 用前宣告就行

所以 int a;不能放在 printf下面宣告

3樓:匿名使用者

跟你用的編譯器有關係 ,以c99標準說,現在大部分編譯器應該都支援第二種的,只有少數不支援吧。

4樓:匿名使用者

c89規定將變數宣告放在每個**塊的最前面,通俗的說就是每個「{」符號之後。

c99就沒有這樣的規定了。

5樓:匿名使用者

c 語言要求將變數宣告放在每個**塊block的最前面

關於c語言的一個簡單問題

6樓:洪冷鬆

這個是投影b,不是選擇,選擇是按某些條件,從原關係中找出符合條件的部分記錄(也就是選擇後屬性abc是不會變化的,但是記錄的數量可能有變化),投影則是選擇性的顯示原關係的部分屬性,記錄數量是不會變化的

關於c語言的一個簡單問題。非常簡單!

7樓:

在stud[1].num前面的&就說明是取它的地址。

括號是強制型別轉換,*代表是指標型別。

整個呢,就是把變數的地址強制轉換為struct stu *指標型別。

指標就是指向一個變數的地址。

8樓:匿名使用者

stud[1].num

和.的優先順序高於&

p = (struct stu *)(&(stud[1].num));

取 stud[1].num的地址,然後強制轉化為struct stu *的型別。

這個轉換太危險了吧。。。

9樓:匿名使用者

括號裡是強制型別轉換, *代表是指標變數,返回的是地址。

10樓:匿名使用者

指標的意思,就是說後面的&stud[1].num是個stu格式的指標

一個關於c語言的問題。 70

11樓:匿名使用者

用函式 pow 啊 原型:extern float pow(float x, float y); 用法:#include 功能:

計算x的y次冪。 說明:x應大於零,返回冪指數的結果。

舉例: // pow.c #include #include #include void main() 你的那個 應該是a*pow(10,j)

關於c語言的一個小問題

12樓:

d=-14 .樓主真是的,你把**輸入visual c++6.0 環境下執行下不就知道結果了麼,反正結果是-14就是了,是曾姐整錯了。

13樓:匿名使用者

明顯算錯了...d=-14

不要太信任教材什麼的哦

14樓:匿名使用者

對啊 這不是簡單的加法嗎?~沒問題吧

c語言中一個關於near簡單問題

15樓:匿名使用者

給_systemaudio 聯合體,取了別名systemaudio

然後用systemaudio型別定義了一個near變數sysaudio

near是段內修飾符,在32位編譯器,near或者far沒有用處

16樓:匿名使用者

near、far、huge關鍵字的真正含義是什麼?

這三個關鍵字只能用於修飾函式、全域性變數和指標變數,對於非指標型別的區域性變數,這些關鍵字沒有實際意義。

這些關鍵字用於修飾函式時,huge的含義與far相同,用於指明該函式的呼叫方式為far呼叫方式,即呼叫時需要一個段值和一個段偏移組成的32bits呼叫地址,使用far call進行跳轉,跳轉前先壓棧儲存當前cs:ip。near修飾函式時,用於指明該函式的呼叫方式為near呼叫方式,呼叫時只需要一個16bits的近地址,即當前cs的段內偏移。

當這三個關鍵字用於修飾指標時,near型指標實質上為16bits的無符號整型數,該整數給出了所指向變數在當前資料段內的偏移地址,也就是說,在使用near型指標定址時實際上是進行如下的定址操作:[ds:指標變數值]。

對於far型的指標變數,可以定址1mb地址空間的任意一個地方,far型指標的實質是一個32bits的整型數,高16bits為段值,低16bits為段內偏移,turbo c中在使用far型指標時,會先將高16bits放入es暫存器中,然後再進行如下的定址操作:[es:指標變數低16bits值]。

對於hug型的指標變數,與far性指標變數的不同之處在於,在對far型指標變數進行+/++/-/--等操作時,far型指標變數保持段值不變(也就是高16bits),而只對段內偏移進行加減操作,所以會出現段內迴繞的現象,而huge型的指標,在進行加減操作時將會自動的改變段值,不會出現段內迴繞。所以給人的感覺就是huge指標能比far指標定址更大的記憶體空間。

關於c語言問題關於c語言的問題

void vtaskstartscheduler void privileged function 是函式定義,函式名 vtaskstartscheduler,void 表示該函式是無參函式,前面的 void 表示這個函式無返回值。privileged function 是巨集,預編譯期間,執行文字...

關於c語言for語句的問題,關於C語言for語句的問題

這兩個程式是不同的,for語句在不加大括號情況下只迴圈到之後的一個分號,即前一個程式迴圈體包括printf 輸出為1234 後者迴圈體中不包括printf 執行完for語句後,再執行printf 輸出為5。第一個for迴圈的迴圈體內有一條語句,那就是printf,每次迴圈都要執行一次迴圈體內的語句,...

關於c語言的計算問題,關於c語言的計算問題

這涉及c的細節,我建議你記住 程式中的常量其實也存放在記憶體單元中,c規定運算運算子兩旁同類時運算結果與參與運算的數的型別相同,事實上時 加法器直接處理那兩個記憶體單元中的資料,並將結果送到另一記憶體單元,而這裡的 另一記憶體單元也是兩位元組長,因此他只接收到結果的低二位元組部分 及1的補碼 所以,...