1樓:匿名使用者
剛才我弄錯了運算子優先順序,對不起,誤導你了。重新回答一次:
static變數的意思是,儘管它是在一個函式中定義的,但是它定義了以後就跟一個全域性變數一樣了,在函式呼叫結束以後,函式中的其他變數都會消失,而這個static變數還存在。
(但static變數跟全域性變數還是有區別的,在多檔案的project裡,全域性變數是所有檔案都可以使用的變數,而static變數只是在本檔案裡相當於全域性變數,放到其他檔案裡是不認它的。但你暫時還不需要知道這麼多。)
static變數賦初值是在編譯時進行的,而不是函式呼叫時進行的,也就是說,在你的程式執行的時候,c已經具有值3了,如果多次呼叫f()函式,並不會在每次呼叫f()時重新為c賦一次值,而是使得c保持它的值不動。也就是說,你可以把上面的例子簡單的看成是:
int c=3; //全域性變數c=3
int f(int a)
對於a=c++,b++;
這一句是一個逗號表示式,逗號表示式的一般形式為expr1,expr2;它是對expr1和expr2分別求值,然後以expr2的值為整個表示式的值。
對這個具體的例子來說,它是對表示式a=c++和b++分別求值,然後以b++的值作為整個表示式的值。
這裡,因為=的優先順序比,要高,所以整個表示式相當於(a=c++),b++;而不是相當於a=(c++,b++);
第一次呼叫f()時,先執行表示式a=c++,結果如下:
把c的值3賦給a,然後c自己增加1,於是結果就是a=3,c=4.
再執行表示式b++,執行完以後b=1,這也是整個逗號表示式的值,不過這個值沒有被用到。
函式返回值為a的值,也就是3.
第二次呼叫f()時,先執行表示式a=c++,結果如下:
把c的值(此時已經變成4了)賦給a,然後c自己增加1,於是結果就是a=4,c=5.
再執行表示式b++,執行完以後b=1,這也是整個逗號表示式的值,不過這個值沒有被用到。
函式返回值為a的值,也就是4.
所以最後輸出的結果是4.
2樓:匿名使用者
static 是定義靜態變數,其空間在程式開始執行時就分配,a=c++,先執行a=c操作,再執行c=c+1操作。
b++相當於b=b+1;
與a=b++與a=++b區別在於,前者是先執行a=b操作,後者先執行b=b+1操作;
3樓:影者東昇
上面函式相當於下面的:
int f(int a)
void main()
printf("k=%d\n",k);
}main裡的for迴圈說明:
第一次:i=0;k=f(2);此時f(2)的值為3,c=4;
第二次:i=1;k=f(3);此時f(3)的值為4,c=5;這裡要注意的是c的值,因為c是static的,
它只被初始化一次。c的初始值是3(第一次呼叫f的時候),第二次呼叫f的時候,此時c的初始值變成了4,因為第一次呼叫f的時候(c=c+1)。
所以得出的結果是:k=4
4樓:
static的作用就是隻對變數進行一次賦值 你的迴圈中i/0控制流兩次走到了static 但只在第一次的時候執行static int c=3;至於c++是先將c的值賦給a 然後再自身加1.。。。。貌似你的問題和你給的程式不怎麼一致。。。。
5樓:匿名使用者
定義一個靜態整型變數 a ,然後將 c的值賦給 a ,然後 c加上1,b加上1
6樓:匿名使用者
a=c++,b++;,運算子,結果等於最後的值,
a=b,b=b+1,c=c+1
c語言語法問題:a =( c++,b++) 啥意思?
7樓:風の鳶
沒有啥意思,就是簡單的運算。
這裡涉及如下運算子,賦值=,自增++,括號,和逗號運算子。
按照運算子的優先順序,先計算括號 也就是討論 c++,b++然後計算++,也就是c和b分別自加。(注意)然後談論逗號運算子,沒有意義,就是從左到右。
所以最後賦值給a的是b++。
前面提到一個注意就是,雖然b自加了,但是他的寫法是 b++而不是++b,意義上是先使用後自加。所以賦值給a的值是當前的b的值,這一行指令結束以後,b自身的值才會++。
這個問題只是考察你對各個運算子的理解。
8樓:匿名使用者
結果 a == b。
c 語言中,逗號表示式從左到右按順序執行,並返回最右表示式的值。
而因為最右的是 b++,++後置,所以先返回了b,也就是給 a 賦值為 b,然後執行 b 自增一。
9樓:匿名使用者
c++a = b++
括號中是逗號表示式,取值為最右邊的表示式的值。
10樓:我愛黑蜀黍
沒見過這樣的c語法啊,等號右邊不可為變數。
11樓:匿名使用者
你好,沒這樣的語法吧!我沒有見過.
c++中,a+=b什麼意思?
12樓:幻翼高達
c++中,a+=b的意思是a+b後再賦值給a,即效果等同於a=a+b,但是從運算角度只算1次運算,“+=”是c++中一個複合運算子。
在賦值運算子當中,還有一類c/c++獨有的複合賦值運算子。它們實際上是一種縮寫形式,使得對變數的改變更為簡潔。
例如total=total+3,它的意思是本身的值加3,然後在賦值給本身。為了簡化,上面的**也可以寫成:total+=3。
a=a+1與a+=1是有區別的,對於a=a+1,表示式a被計算了兩次,對於複合運算子a+=1,表示式a僅計算了一次。
擴充套件資料:
c++中所有複合運算子:
1、+=:加法賦值
2、-=:減法賦值
3、*=:乘法賦值
4、/=:除法賦值
5、%=:模運算賦值
6、<<=:左移賦值
7、>>=:右移賦值
8、&=:位邏輯與賦值
9、|=:位邏輯或賦值
10、^=:位邏輯異或賦值
13樓:匿名使用者
c++中,a+=b的意思是a=a+b,即將a的值加上b的值之後的結果重新賦值給a,這是a=a+b的簡寫形式。
這種形式還有很多種運算型別,如-=、*=、/=、%=等,其規則與+=類似,如a-=b的後即為a=a-b,其他類似。
14樓:匿名使用者
a[b=c]++
首先執行賦值語句b=c,表示式b=c的值是c的值 ,所以a[c]++,a[c]的值自增1,一句話裡執行了上述兩個操作
15樓:
a+++-b = (a++)+(-b),這題目考察了對於運算子號優先順序的知識,++是自增運算子,優先順序高於+和-,所以前兩個+表示一個自增運算,+-從左向右 運算,所以第一個+是運算子,第二個-表示負數,相反-+,第一個-表示減法,第二個+號表示一個正數。
16樓:匿名使用者
a&=b等價於a=a&b,意思是a、b的二進位制碼進行每一位的與運算,結果存放在a裡面。
a^=b等價於a=a^b,意思是a、b的二進位制碼進行第一位的異或運算,結果存放在a裡面。
17樓:
是表示式a = a + b ;的簡寫形式,類似 a *= b 就是 a = a * b;
18樓:我的
表示式的右邊是呼叫函式f,括號內的a,b,c是傳遞到函式中去的引數(實參),將呼叫f所返回的值賦給c(使用者定義的變數),c的型別必須與函式返回值的型別一致
19樓:偷心的賊
應該是這樣的,“c”是某種變數,發f(a,b,c)是一個返回“c”類變數的函式,其中a,b,c分別是函式的引數
20樓:匿名使用者
等同於a=a+b
就是將原來a的值與b相加,然後將結果賦予a
21樓:匿名使用者
把 a+b 的值賦給 a
22樓:匿名使用者
a=a+b;
其他運算子同理
c++中b-=a是什麼意思
23樓:人設不能崩無限
、|在c/c++中,**ai作符稱為自反運du算符(類似的還有zhi+=、*=、/=、&=、|=等dao等),由前後兩個符號無間版隔組合權
而成;其核心意義由前一個符號確定,完成左邊的變數與右邊的變數的運算關係,後面的=號是把運算結果賦給左邊的目標變數的意思。
24樓:幻翼高達
c++中,襲a+=b的意思是a+b後再賦值給a,即效果等同於a=a+b,但是從運算角度只算1次運算,“+=”是c++中一個複合運算子。
在賦值運算子當中,還有一類c/c++獨有的複合賦值運算子。它們實際上是一種縮寫形式,使得對變數的改變更為簡潔。
例如total=total+3,它的意思是本身的值加3,然後在賦值給本身。為了簡化,上面的**也可以寫成:total+=3。
a=a+1與a+=1是有區別的,對於a=a+1,表示式a被計算了兩次,對於複合運算子a+=1,表示式a僅計算了一次。
擴充套件資料:
c++中所有複合運算子:
1、+=:加法賦值
2、-=:減法賦值
3、*=:乘法賦值
4、/=:除法賦值
5、%=:模運算賦值
6、<<=:左移賦值
7、>>=:右移賦值
8、&=:位邏輯與賦值
9、|=:位邏輯或賦值
10、^=:位邏輯異或賦值
25樓:
|在c/c++中,操作符
制-=稱為自反運算子(類似bai的還有+=、du*=、/=、&=、|=等等),由前zhi後兩個符號無間dao隔組合而成;其核心意義由前一個符號確定,完成左邊的變數與右邊的變數的運算關係,後面的=號是把運算結果賦給左邊的目標變數的意思。這樣,題面中的b-=a就是b=b-a的意思了。當然a、b都必須是宣告過的合法變數,且b必須具有左值能力。
26樓:火_炬_木
b-=a表示b=b-a,另外,b+=a表示b=b+a,這些都是運算子號,被定義好了的,我們會用可以了!望採納!
27樓:七友
b-=a就等於b=b-a,
類似的有:
b+=a就等於b=b+a;
b*=a就等於b=b*a;
b/=a就等於b=b/a.
28樓:
b-=a表示b=b-a,和c語言用法一樣的。
29樓:劉2星雨
就是b=b-a;
類似的還有b+=a;也就是b=b+a;
30樓:希伯來爵
就是b=b-a;
類似的還有b+=a;也就是b=b+a;
習慣了就好
31樓:忠毅儉樸
即b=b-a;b-=a這種寫法比較好些
c++語言中a*=a*=b什麼意思啊
32樓:匿名使用者
a*=a*=b;
即先算a*=b;得a=a*b;同時a*=b也等於a*b。
再算a*=(a*=b)
即a*=a*b
即a=a*b*a*b
c++ 中int c=(a>b)?b:a是什麼意思啊?
33樓:朝陽
這個的過程是這樣的:
如果a>b,則結果為true,就將b賦值給c,也就是執行int c=b;
如果a
總結,該過程就是將a和b中的最小值賦值給c
34樓:曉趙義
如果a大於b的話,c 的值就為b的值,否則為a的值。
35樓:匿名使用者
是最大值賦值給c,不是最小值
在c++中a=a+b;b=a-b;a=a-b是什麼意思
36樓:功靜楓霍河
c++中,a+=b的意思是a=a+b,即將a的值加上b的值之後的結果重新賦值給a,這是a=a+b的簡寫形式。
這種形式還有很多種運算型別,如-=、*=、/=、%=等,其規則與+=類似,如a-=b的後即為a=a-b,其他類似。
37樓:物理公司的
設a=1,b=2
a= a+b = 1+2=3
b= a-b = 3-2=1
a=a-b=3-1=2
事實上就是把a和b對調不通過第三個變數
和t = a;
a = b;
b = t;是一樣的
IDEAS是啥意思,IDEAS是啥意思
1,如果是單詞的複數形式,那麼是idea 主意,ideas是它的複數形式。2,如果是技術詞語,請看 ideas 是一款應用於microsoft windows或linux的nds模擬軟體。目前ideas能完全模擬gba遊戲的arm7處理器,99 模擬ds遊戲的arm9處理器。它能執行大部份的遊戲,包...
這是啥意思,這個是啥意思
沒圖沒真相,沒描述,抱歉我也沒能明白這是啥意思哦!不要吝嗇發張 看看也行嘛。你這是啥意思,你想說啥 沒有意思,你想幹嘛就幹嘛。把店鋪重新啟用就可以了,應該是店鋪長期沒有訂單或者長期沒用的原因 你這問的是什麼意思這要問你自己心裡是怎麼想的不就知道是什麼意思了嗎 你想表達什麼意思啊?難道是為難人家的。這...
姆瓦是啥意思,kitty是啥意思?
樺皮船,赫哲語叫 烏莫日沉 達人秀紅山果中字幕裡的 姆瓦 到底是什麼東西,在這裡引經據典幾方面說 1 首先看歌詞,安唱的第一大段其實是兩個分段,講了兩個意境,正確的歌詞分段應該是下邊的形式 一朵花 一棵樹,一座房子 一條路,一座山 一條河,一隻小船 一個我 這是第一小節寫女方的情況的,是說的女方生活...