一樣的。
表示式裡 字尾加加 先不做自增,出了表示式再自增。
(它不同於字首加加。字首加加要先做自增,出了表示式後不另做自增。)
所以:
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。