1樓:茆德悟旻
也不算很難理解啊
說的通俗點
a++就是先把a當前的值
進行輸出或運算啥的
然後a在自增1
就是加1
++a也就先把a當前的值自增1
然後在輸出或運算啥的
好比a的值是1
b=++a
先把a當前的值1
自增1然後運算就是賦值給b
所以b=2
a=2b=a++
先把a當前的值1運算
就是賦值給b
所以b=1
然後a在自增1所以a=2
++--是1元運算副
具有右綜合性
優先順序高過
邏輯算術
賦值關係等這些運算副
2樓:度浩麗局妙
1,表示式的
值不同,++a的值是原a的值加1,a++是原a值例1int
a=1,
b;b=++a;
printf("%d",b);
例2int
a=1,
b;b=a++;
printf("%d",b);
2,++a可以做左值,a++不可以
例1int
a=1,
b=5;
++a=b;
printf("%d",a);
例2int
a=1,
b=5;
a++=b;/*這裡是個編譯錯誤*/
printf("%d",a);
3樓:閩恨甲瑾
hahugo88的回答很正確,這個意義必須掌握好哦!
我就是因為這個概念模糊考試丟了10分
4樓:匿名使用者
*** = *a++等價於 *** =*a;a++;指標移了一位*** = (*a)++等價於*** =*a;(*a)= (*a)+1;指標沒有移位,內容加1了。
5樓:澤男君
作為單獨的語句,a++;與++a;並沒什麼區別
但是b = a++;和b = ++a就有區別了
a++這個式子的返
回值是a,所以b = a++相當於b = a,然後a = a+1;
++a的返回值是a+1;所以b = ++a相當於a = a+1;然後b = a;
c語言是一門通用計算機程式語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。
儘管c語言提供了許多低階處理的功能,但仍然保持著良好跨平台的特性,以乙個標準規格寫出的c語言程式可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(微控制器或稱mcu)以及超級電腦等作業平台。
二十世紀八十年代,為了避免各開發廠商用的c語言語法產生差異,由美國國家標準局為c語言訂定了一套完整的國際標準語法,稱為ansi c,作為c語言最初的標準。
6樓:夜神月
優先順序 () > ++ > *
*a++ 先執行++ 再執行 * 即指標先移動乙個位置,在對移動後指標所指位置解引用取值。
(*a)++ 先執行*a 再執行++ 即先對指標所指位置解引用取值,再對這個值自增加1.
7樓:滄海雄風
*a++ 和(*a)++
區別 乙個是 指標後移 乙個是指標指向的內容自加舉例int *a, b[2]=,c;
a = b;
c=*a++ 那麼 a 指向1 則c等於2c=(*a)++ 那麼 c 等於2
過程不一樣而已
舉例子 乙個是別人讓你移動一格
乙個是你自己移動一格
8樓:
優先順序的關係自增的級別要高
c語言中 a a'和"a"的區別
9樓:黑馬程式設計師
『a』是 單個字元,
「a」是 字串就是多個字元的集合實際上,"a" 等價於「a\0」;末尾還有字串結束符
c語言中*a++和(*a)++有什麼不同?
10樓:澤男君
作為單獨的語句,來a++;與++a;並沒什源麼區別
但是b = a++;和b = ++a就有區別了
baia++這個式子du的返回值是
zhia,所以daob = a++相當於b = a,然後a = a+1;
++a的返回值是a+1;所以b = ++a相當於a = a+1;然後b = a;
c語言是一門通用計算機程式語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。
儘管c語言提供了許多低階處理的功能,但仍然保持著良好跨平台的特性,以乙個標準規格寫出的c語言程式可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(微控制器或稱mcu)以及超級電腦等作業平台。
二十世紀八十年代,為了避免各開發廠商用的c語言語法產生差異,由美國國家標準局為c語言訂定了一套完整的國際標準語法,稱為ansi c,作為c語言最初的標準。
*a++與a++這兩個有什麼區別啊
11樓:芳元寶
*a++與a++區別如下:
1、a++是先取a的值然後進行++運算。
2、*a++是先執行++運算,再執行 *, 即指標先移動乙個位置,在對移動後指標所指位置解引用取值。
3、*與++是c語言中的運算子,++的優先順序高於*。
12樓:匿名使用者
an和a的區別,用法區別
13樓:匿名使用者
因為沒有說明a的定義,這裡看
問題推測應該是個指標
a++表示a指向下個位址,例如a如果當前指向陣列num[0]的位址,那麼a++後,當再次使用a時,其應該指向了陣列num[1]的位址了;
*a++表示取指標a指向的位址中存放的內容,然後給指標a++令其指向下乙個位址,如上例a指向num[0],而陣列num[0]中的內容是0的話,那麼,*a++的值應該為0,而執行此語句後對應的a應該指向了陣列num[1]對應的位址了;
也可以這樣說:*a++相當於先取當前a指標指向的位址中內容,然後進行a++,而a++單是對a指向的位址向後移動1個單位而已;
14樓:騰訊電腦管家
哪乙個好,並沒有乙個絕對的標準,都有其不同的特點和優點,產品的設計、目標人群、等很多方面都有比較明顯的區別,建議根據個人的使用需要、喜好以及使用環境、實際預算,選擇適合自己的。
15樓:匿名使用者
*a++ 要求a一定要是個指標變數,如:int *a; int x=; a=x ;
*是操作指標位址 的運算子,如上述,此時*a 就是1*a++中,*運算級高,所以,會先算*a , 然後進行 a=a+1而a++只代表指標的移動,即a=a+1
16樓:清月影寒
指標運算子*與自增運算子++同一優先級別,按照自右向左的結合方式*a++等價於*(a++),意
思是「指標a所指向的位址的內容」,比如陣列b[3]=,指標a=b(其實是a指向陣列首元素即b[0]),則*(a++)=3,之後指標a自加一變成a+1指向元素b[1]。a++簡單不說了。
17樓:
區別大得很啊,a++就是a自增1(對於不同資料型別,自增1可能不僅僅是+1而已)
*a++,必須a是指標,返回a所指向的值、然後a再自增1
18樓:夏枕風眠
乙個指標,乙個資料,指標就是指向位址。。位址加一
c語言中const有什麼用途,C語言中const有什麼用途
const修飾的資料型別是指常型別,常型別的變數或物件的值是不能被更新的。const關鍵字的作用主要有以下幾點 1 可以定義const常量,具有不可變性。例如 const int max 100 int array max 2 便於進行型別檢查,使編譯器對處理內容有更多了解,消除了一些隱患。例如 v...
c語言中的double和,C語言中的double和float
double與float的區別在於bai在記憶體中存放數du據時占用的記憶體不一樣 zhi,前者dao8位元組,後者4位元組,也就回是前者儲存的小數字數答 比後者多一倍。舉例說明對於1.9999996666,按照float輸出,結果可能為1.999999,如果按照double可能為1.999999,...
c語言中a和a的區別,C語言中a和a的區別
an和a的區別,用法區別 如果要列印的值是a 如printf d a 那列印出來的只是a的值.但是第二次列印的a值就是回 後的值.就是先答列印後 a就是先改變a的值,再列印出來.具體差別你可以自己試著執行比較一下.a a先加1,所以此時的a 9,所以輸出是9,a 是a先傳參,再減1,所以輸出是9。要...