intf int a return a 什麼意思

2025-02-06 02:10:20 字數 1683 閱讀 5010

1樓:隨便

因該是這樣的。

#include

int a=2;//定義乙個全域性變數。

a=2int f ( int *a)

return (*a)++因為是後加,所以先將傳過來的a位址中的值返回後,再將這個值加一。

int main( )

int s=0;

int a=5;//這裡定義乙個區域性變數,作用域是在這個大括號。

中。s+=f ( a );這裡傳入f的是a=5的變數的位址,經過f後s=s+5,所以s = 5

這裡過後a=5這個變數的作用域結束 ,經過這以後s=5s+=f ( a );這裡傳的是a=2這個全域性變數的值的位址 ,這時f反回的值是2,所以s =s+2,s=7

printf ( n%d ",s );

return 0;

如果 f 函式改成這樣,答案才是9

int f ( int *a)

return ++a);

2樓:網友

int f (int *a)是乙個定義乙個函式,第乙個int是函式的返回值的型別,第二個是傳遞引數的型別。

花括號裡面是函式體,就是返回所傳位址裡的值+1

int a=1;int f(int c){static int a=2;c=c+1;return(a++)+c;}main(){int i,k=0;

3樓:網友

首先要明確變數的作用域,以及static函式的意義。

int a=1; a是全域性變數,其作用域為其之後的所有函式,但若函式中又宣告瞭a變數,則全域性變數不再起作用。

static int a=2; a是靜態變數,該變數作用域為f函式,且對其修改都將儲存, 所以在f函式內全域性變數a不起作用。

int a=3, a是區域性變數, 其作用域僅為for模組內,for執行完後,區域性變數a不再有效,所以在main函式中f(a)呼叫時是用的區域性變數a,但for後面的k+=a;則是全域性變數a

這樣就可以理解了。

i=0; 進入for內部語句, k += f(3)所以 k = 0+f(3) = 0+ (a++ c + 1) = 2+ 3+1 =6

執行完這個後,靜態變數a自加,所以a = 3

i=1; 進入for內部語句, k+=f(3), k = 6+f(3) = 6+ (a++ c + 1) = 6 + 3 + 3 +1) = 13

執行完這個後,靜態變數a自加,所以a = 4

i=2,不再進入for內部。

執行k+=a;此處的a為全域性變數a,所以 k += 1, k =14輸出。

if(n%2){static int a=4;t+=a++;} return t+a++ int a=

4樓:網友

如果n為奇數,則if條件句內的部分執行。

那麼t 賦值為 t + 4++)也就是t+4,由於這個int a的宣告在if條件句內,所以這個a與外面的a是互補干擾的,此部分的結果是,。return t+5++(int a的宣告在前面吧,此後外面的a變成了6,if內部的a變成了5)。也就是t+9.(n為奇數)

n為偶數則返回值為t+5 了。。。

字尾自增操作的內容是先返回其數值,再增加,結果沒有增加1的效果。

字首自增則是先增加1,然後返回其值到計算式中,結果中有增加1的。