久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

C語言指針自增或者自減

 心不留意外塵 2016-05-25

http://blog.csdn.net/edwzhang/article/details/7221850

2012

當(dāng)指針、自增(++)或者自減(--)運算符,,以及*這三個 運算符在同一個語句時,,要注意++的作用點在哪里。

 

測試代碼:

#include <stdio.h>

int main() {

 int i[] = {100, 200, 300, 400, 500};
 int *p = i;

 printf("...%d\n", *p++);
 printf("*p = %d\n", *p);
 printf("...%d\n", *++p);
 printf("*p = %d\n", *p);
 printf("...%d\n", ++*p);
 printf("*p = %d\n", *p);

 return 0;
}

 

測試結(jié)果:

...100
*p = 200
...300
*p = 300
...301
*p = 301

分析如下:

1.

int *p = i;

此時,,指針執(zhí)行數(shù)組第一個元素。

2.

printf("...%d\n", *p++);

此時,,由于*和++的運算符優(yōu)先級相同,,而且結(jié)合性是由右至左,因此*p++其實就是:*(p++),。由于此處的++是后繼加,,所以先得到*p為100之后,才會處理++的動作,。所以這個語句先打印出100,,然后將p指向下一地址。

3.

printf("...%d\n", *++p);

同理,,這個語句相當(dāng)于: *(++p),。由于此處的++是前置加,所以p指針先移到了下一地址,,再打印出*p的值300,。

4.

printf("...%d\n", ++*p);

這個語句相當(dāng)于: ++(*p)。所以++是對*p的值加1,。此語句等同于:

*p = *p + 1;

將*p (此時為300)加1,,再放入*p中。

 

最后,,*p的運算結(jié)果為301,。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多