C语言中 *n++和(*n)++的区别

2025-03-13 15:28:57
推荐回答(5个)
回答1:

//写个代码测试一下
int main(void)
{
int a[20]={1,4,7,0,3,6,9};
int *n=a;
*n++;
printf("%d,",*n);
(*n)++;
printf("%d",*n);
getch();
return 0;
}
输出结果是4,5
所以,*n++ 是指针n加1
(*n)++表示n指向的内容加1

回答2:

独立成一个语句,它们没有任何区别
但如果与其它语句配合,就有区别了,比如:
k=n++;
意思是k=n;n=n+1;
而k=++n;
意思是n=n+1;k=n;

回答3:

*n++是地址加1,(*n)++是值加1

回答4:

*n++ 表示指针n加1
(*n)++表示指针n所指向的值加1

回答5:

*n++里面的++是 n=n+1;
(*n)++里面的++是 *n = *n +1;