c語言,這個程式是怎麼執行的??輸出的數字是怎麼來的

時間 2021-08-30 11:20:57

1樓:王勃啊

你不要管3221216112這個數字

它顯示出來只是希望告訴你差值

3221216112 和 3221216128 的差值的一定的。因為 3221216112 指向的是a的首地址

而3221216128 指向的是a[4]的地址,他們相差 4*4=16個地址。

至於3221216128 是怎麼來的,這是一個隨機又固定的數字。

隨機是說不同的編譯器產生的數字不通,固定是說每次執行都幾乎會產生相同的數字

2樓:西門吹李記

p1,p2分別為陣列a中a[0],a[4]的地址,就是對應變數的記憶體區域在計算機記憶體中的地址。

現在一般電腦的記憶體都有4g左右,約4*10^9個位元組。例程中a[0]實際儲存的地址就是在記憶體中地址從3221216112開始的4個位元組

a[0]地址範圍:3221216112~3221216115,p1指向a[0]首地址就是3221216112

a[1]地址範圍:3221216116~3221216119

以此類推a[2],a[4],

a[5]地址範圍:3221216128~3221216131,p2指向的記憶體區為3221216128

因為p1,p2是同一個陣列的元素的指標,因為元素之間有前後順序,故可相減,差等於陣列元素下標只差,為4。

p1和p2強制型別轉換成int型為x和y後後丟掉了陣列相關的特性,稱為純整數了,相加減就是純數字加減了故y-x=3221216128-3221216112=16

因為y數值比x大,故y>x為1

3樓:飄遙舞者

指標輸出的是地址,變數輸出的是地址的整數值

c語言中實現輸入一個數字字元,然後轉換成整數數字輸出.怎麼做? 10

4樓:匿名使用者

字串轉整數可以有兩種方法:

1.使用c語言自帶的庫函式:atoi。

函式原型:int atoi(const char *nptr);

功能:把字串轉成整型數。

例如:#include

#include

int main(void)

/*輸出:

int = 12345

*/2.可以自己編寫一個轉換函式:

#include

#include

int atoi(char *s)

return(t);

}int main ()

/*輸出:

n = 12345*/

5樓:死亡盛世

我只知道資料型別能相互轉換,但貌似字元和整形無法用一句程式轉換吧,如果你想寫多句程式來轉換,可直接用switch語句,對'0'-'9'進行判斷,直接輸出0-9,不知道這樣行不行的通。

6樓:

char c;

int n;

c = getchar();

n = c;

printf(%d,n);

/*也可以直接輸出c*/

printf(%d,c);

如果要數字對應輸出就這樣寫

char c;

int n;

c = getchar();

n = c-48;/*48是0的ascii碼值*/printf(%d,n);

為什麼這個c語言程式總是執行是錯誤

茆傅香佘汝 你這程式是不是求單詞數量呀.修改如下 include include include void main printf 字數為 d n c 翟芙聊釵 include stdio.h include intmain printf 字數為 d n c 招金生蹉亥 linking.link f...

c語言,以下程式的輸出結果是,C語言問題 以下程式的輸出結果是?

輸出1 3 這是遞迴了,所以先是fun 3 進入後發現3 2 1,所以又繼續func 3 2 也就是fun 1 進入發現1 2 0,就執行prinft,輸出1,然後fun 1 就返回了 返回出去正好是fun 3 的prinft,輸出3 進入fun 3 進入fun 1 輸出1退出fun 1 輸出3退出...

c語言程式執行時間測試,C語言程式執行時間測試

clock t clock void 這個函式返回從 開啟這個程式程序 到 程式中呼叫clock 函式 時之間的cpu時鐘計時單元 clock tick 數,在msdn中稱之為掛鐘時間 wal clock 其中clock t是用來儲存時間的資料型別,在time.h檔案中,我們可以找到對它的定義 if...