關於static a cb是啥意思啊

2021-09-17 08:46:15 字數 6486 閱讀 9356

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 形 會意。從日,從曰。本義 善,正當 同本義昌,美言也。說文 禹拜昌言。書 大禹謨 又如 昌言 正直的善言 好話 昌教 善美的教化 興旺發達,與 亡 相對邦乃其昌。書 仲虺之誥 順之者昌,逆之者不死則亡。史記 太史公自序 今中國未聞有因變法而流血者,此國之所以不昌也。清 梁啟超...