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;是一樣的
關於Bra的問題???bra是啥意思?
如果受重力影響肯定會下垂,可以穿的時候不用太緊。白天一定要穿 因為你要活動 bra可以對抗地心引力防止下垂。晚上睡覺不要穿 束縛太久會增加得乳腺癌的幾率。bra是啥意思?bra bra是什麼意思 您好,女孩子說的bra是一個英文縮寫,指的是文胸。bra全稱為brassiere,源於法語brassi ...
cpu是啥意思CPU是啥意思
cpu是一塊超大規模的積體電路,是一臺計算機的運算核心 core 和控制核心 control unit cpu,central processing unit 也叫做 處理器,是一臺計算機的運算核心 core 和控制核心 control unit 是計算機內的電子電路,通過執行由指令指定的基本算術 ...
昌的啥意思,RlP是啥意思
詳細解釋昌ch ng 形 會意。從日,從曰。本義 善,正當 同本義昌,美言也。說文 禹拜昌言。書 大禹謨 又如 昌言 正直的善言 好話 昌教 善美的教化 興旺發達,與 亡 相對邦乃其昌。書 仲虺之誥 順之者昌,逆之者不死則亡。史記 太史公自序 今中國未聞有因變法而流血者,此國之所以不昌也。清 梁啟超...