1樓:匿名使用者
/*這個例子主要是考慮到a++和++a的儲存問題;
我們知道,對於a++是先將a給表示式再++;
那麼這就是需要乙個tmp空間來儲存++之前的a!!!但是對於++a是不需要的,因為先執行++,那麼就是直接改a空間內容就好了!
那麼我們下面的問題就是這樣!
*/#include
int main()
2樓:匿名使用者
舉個列子
int a = 2;
int b;
第一種情況b = a++; 那麼這個b是等於2的,而a最後等於3,也就是a的值2先賦給b,然後a再++等於3
第二種情況b = ++a; 那麼 這個b等於3,a也是3,這個運算順序就是,先++a,a=3了,然後b=a,b也是3
3樓:匿名使用者
++a和a++在單一語句中沒有任何區別,是等效的:
++a;
a++;
效果上一致,都是a增加了1。
在復合語句中,就是先加後用和先用後加的區別:
int a;
a = 1;
int i = ++a; //i為2,因為a先變成了2再賦值a = 1;
int j = a++; //j為1,因為a先賦值給了j,再變成了2
c語言程式設計語句中的a++和++a有什麼區別,能舉個簡單例子嗎?
4樓:匿名使用者
a++是使用的
復a後,再對製a進行加1,a++是先賦值再自增.
++a是先把a加1,然後再使用a,++a是先自增在賦值。
#include
void main()
5樓:萢萢
a++是使用的a後,再對a進行加1。
++a是先把a加1,然後再使用a。版
如:int a=1;
printf("%d ", a++);
printf("%d", a);
輸出的權是1 2。
printf("%d ", ++a);
printf("%d", a);
輸出的是2 2。
6樓:ghoul荷蘭人
當 c=a++時,c是先被a賦值,再進行a=a+1
當c=++a時,先進行a=a+1,c再被a賦值
7樓:匿名使用者
a = 1;
b = a++; //b = 1 , a = 2c = ++a; //c = 3 , a = 3a++ 是先用a,在自加
++a 是先自加,在使用
c語言中a++與++a的區別是什麼?詳細一點,謝謝!
8樓:匿名使用者
a++ 是先返回a的值,再執行++運算。
++a 是先執行++運算,在返回a的值。
例如:#include
int main()
9樓:睢辰丁逸秀
a=7a++
先使用a的值,a在自增
++a先自增在使用a的值
b=a++
;//b=7
c=++a;//c=8
10樓:疲憊的龜
a++代表先取值,後運算。
++a代表先運算,後取值。
a=1;
如b = a++;
得b = 1
若b = ++a;
得b = 2
11樓:匿名使用者
乙個用了再加1,乙個先加一再用
請問c語言裡for迴圈使用a++和++a的區別?
12樓:潯陽帝
一般情況下,
bai++a是先加再執行du操zhi作,而a++是先執行操作dao在加1。但在for迴圈內裡面
for(int i=0;i<10;i++)先進行i<10的判容
斷,如果符合就執行for裡面的**,執行完再執行分號後面的語句i++或++i,所以在for迴圈這個位置的i++和++i是沒有區別的
13樓:小花朵
a++和++a的區別在於:如果是表示式的一部分的話,那麼+1的順序會影響到結果版如
int a=1;
int b=1+a++;
則b=2;a=2
而int b=++a+1;
則b=3;a=2;
如果表示式就是乙個簡單權的a++或++a;那是一樣的寫成while迴圈和第乙個是一樣的,因為++不影響,它不在表示式裡while(a<5)
14樓:匿名使用者
a[tot++]-=1 是a[tot]-1後tot++,則a[++tot]-=1恰恰相反
15樓:
如果開始的時候a是2。
i=a++,那麼i是2。
i=++a,那麼i是3。
區別是在什麼時候加1。如果不再給其它變數賦值的話結果等價。
給的這個例子,++a和a++結果是一樣的。
16樓:匿名使用者
你的**中沒有區別
a++和++a的區別是先運算後增和先增後運算
17樓:龍婷妹妹
在你所寫的兩段**中,a++和++a是沒有區別的,都等價於a=a+1。
18樓:匿名使用者
int a=0;
while(a<5)
for(a=0;a<5;++a)
sum=sum+a; //這時a=1了, ++a就是先給a加1,然後再執行後面的語句
其實for與while我認為就是一種迴圈,只不過寫法不同罷了,完全可以寫成這樣:
int a = 0;
while(a<5)
19樓:匿名使用者
這個例子不足以說明問題
c語言中a++和--a的區別
20樓:匿名使用者
an和a的區別,用法區別
21樓:興弘懿那葛
如果要列印的值是a++
如printf("%d",a++);
那列印出來的只是a的值.
但是第二次列印的a值就是回++後的值.
就是先答列印後++;
++a就是先改變a的值,再列印出來.
具體差別你可以自己試著執行比較一下.
22樓:小杉
++a a先加1,所以此時的a=9,所以輸出是9,a--是a先傳參,再減1,.所以輸出是9。要是你在後面輸出一次a,那就是輸出8了。這是乙個是先自加減,還是後加減的問題
23樓:
因為a--是先讀取a,然後列印出引號內內容,最後對a自減。
而++a是先對a自加,然後列印引號內容。
24樓:鄭木頭
第一次輸出前a自加為9;第二次輸出a後再自減
25樓:清風
a++,是先運算,自己再加1
--a,是先自減1,再運算
c++中(++a)和(a++)有什麼區別?
26樓:匿名使用者
你可以這樣來想:++a和a++,都是個表示式,最後的結果就取決於是先加,還是後加,如果是先加,那麼最後的表示式的結果就是a的值加1,如果是後加的話,則表示式的值就是原來a的值;而無論是先加,還是後加,a的值計算後一定會加1。
比如:如果a=1,b=a++,運算完b=1,a=2
如果a=1,b=++a,運算完b=2,a=2
當然也可以這麼理解:
a++就是a=a+1,其含義就是現將後面的a賦值給前面的a然後再加1.
++a就是a=1+a,其含義就是先對後面的a加1然後再賦值給前面的1.
但這只是在表示式中.
如果在單獨的語句中二者都沒有什麼區別!
列:int a=1,b=1;
a++;++b;//這裡就是語句!
printf("%d%d",a,b);
輸出都是2.
而表示式則是if((a++)==1)和if((++a)==1)這裡就有區別了!
呵呵,謝謝.
27樓:邱全於駿英
一般來說他們的區別在於混合表示式中運算子的處理順序。
a++是先處理其他運算,然後a再自加;
而++a則是先處理a自加運算,再處理其他表示式運算;
如果只是單純的表示式a++;或者是++a;這兩個表示式的結果就沒什麼區別。
譬如是#include
using
namespace
std;
void
main()
計算的結果是a=2,b=1,c=2
c=++a是表示式先處理自加運算後處理賦值運算;
b=a++是表示式先處理賦值運算後處理自加運算;
28樓:開萱由琬
對於a這一變數本身而言,效果等同為自增1,比如a++;和++a;是等價的。但要是說如下語句:
inta=1;
printf("&d",++a);和printf("&d",a++);的結果不同,前者為2,後者為1;
即++a是先自增後使用,a++是先使用後自增。
還希望能讓您滿意
29樓:匿名使用者
an和a的區別,用法區別
30樓:匿名使用者
例如n,在執行++a時,先變成n+1,然後再執行程式,執行完一邊程式後變成n+2再執行,依次迴圈。
n在執行a++時,先執行一遍程式,然後變成n+1再執行,依次迴圈。
也就是說++a表示先增加,然後執行;a++表示先執行後再增加。
這樣說也不知道你是否能懂,呵呵。
31樓:瑪利亞燕
(++a)是先加後用
(a++)是先用後加
例如:a=2,b=a++:則b=2,a=3;
a=2,b=++a ,則b=a=3
32樓:七個字是最長的
+在前就是先讓a=a+1,然後使用a的值
+在後就是先使用a的值,然後讓a=a+1
簡單好記
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。要...
c語言中啥意思,C語言中 , , , 分別是什麼意思
詳細,我摘抄了一些,詳細的你看以看看。有很例子,好懂!邏輯運算子把各個運算的變數 或常量 連線起來組成乙個邏輯表示式。邏輯運算子有4個,它們分別是 邏輯非 邏輯或 邏輯與 異或 在位運算裡面還有 位與 位或 的運算。什麼是邏輯運算 邏輯運算用來判斷一件事情是 對 的還是 錯 的,或者說是 成立 還是...
在C語言中0與0的區別是,C語言中的0與 0 有什麼區別?
他們是常量中不同的資料型別呀 0是整型常量,佔記憶體兩個位元組 0 是字元常量,佔記憶體乙個位元組 只是 0 在電腦中用電腦語言所代表的數值和0是相同的 字串常量和字元常量是不同的量。它們之間主要有以下區別 1 字元常量回由單引號括起來,字元答串常量由雙引號括起來。2 字元常量只能是單個字元,字串常...