void prt(int *x ,int *y, int *z)
{
printf("%d%d%d\n",++*x,++*y,*(z++));}
main()
{
int a=10, b=40, c=20;
prt(&a&b&c);
prt(&a&b&c);}
主要就是Z的值不理解,Z++是地址变化吧,但是是在*执行完,才改变地址吧?还有为什么两次数值都不变?
因为prt函数的参数是&c(c的地址), &c就是prt函数的局部变量,它的值在prt函数里改变,main函数中不会改变。c的值是20是因为++的特性,语句结束之后再加1.
把*(z++),换成z++,直接查看z的地址变化,就很容易理解了。把代码发给你,你自己实验下。
#include <stdio.h>AB值变了 你可以运行下。