i&#39lltryanythingonce什麼意思?Oo家住海邊喜歡浪oO2019-07-01 16:01:06

一樣的。

表示式裡 字尾加加 先不做自增,出了表示式再自增。

(它不同於字首加加。字首加加要先做自增,出了表示式後不另做自增。)

所以:

c = *i ; 就等於

分2步執行: c=*i; i=i 1;

同樣 c= *(i ); 就等於

分2步執行: c=*(i); i=i 1;

*(i) 和 *i 一樣。

程式例子:

#include

int main(){

int a[]={1,12,3,14};

{

int *i=a;

int c;

c=*i ; // 方法一

printf(“c=%d

”,c );

printf(“&a[1]=%p i=%p *i=%d

”,&a[1],i,*i);

}

printf(“==============

”);

{

int *i=a;

int c;

c = *(i ); // 方法二

printf(“c=%d

”,c);

printf(“&a[1]=%p i=%p *i=%d

”,&a[1],i,*i);

}

return 0;

}

輸出:

c=1 // 表示式的值

&a[1]=0018FF3C i=0018FF3C *i=12 // 出表示式後 i 指向 a[1], *i=12

==============

c=1 // 表示式的值

&a[1]=0018FF3C i=0018FF3C *i=12

// 出表示式後 i 指向 a[1], *i=12。