c指针-函数参数深入探索(请教)

risingsoft risingsoft 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
实在是被C的指针搞糊涂了.以下是代码和不清楚的地方:

---------------------------------源代码--------------------------------------------

main(){
void func1(int);
void func2(int *);
void func3(int*);
int a=10,*p;
int* pp;

printf("\nin main():");
printf("\na=%d,&a=%d,*&a=%d,*(&a)=%d\n",a,&a,*&a,*(&a));
p=&a;
printf("\np=%d,&p=%d,*p=%d\n",p,&p,*p);
pp=a;
printf("\npp=%d,&pp=%d,*pp=%d\n",pp,&pp,*pp);

printf("\nin func1():");
func1(a);
printf("\nin func2():");
func2(p);
printf("\nin func3():");
func3(pp);
}

void func1(int a){
printf("\na=%d,&a=%d,*&a=%d,*(&a)=%d\n",a,&a,*&a,*(&a));
}

void func2(int *p){
printf("\np=%d,&p=%d,*p=%d\n",p,&p,*p);
}

void func3(int* pp){
printf("\npp=%d,&pp=%d,*pp=%d\n",pp,&pp,*pp);
}

---------------------------------执行结果------------------------------------------

in main():
a=10,&a=4048,*&a=26405,*(&a)=10

p=4048,&p=26405,*p=4050

pp=10,&pp=0,*pp=4054

in func1():
a=10,&a=4046,*&a=26405,*(&a)=10

in func2():
p=4048,&p=26405,*p=4044

in func3():
pp=10,&pp=0,*pp=4044

标为红色的字样处是不清楚的地方,这些数据该如何理解与解释?
...全文
评论 18
收藏 已收藏
分享
返回顶部
risingsoft
C语言 70,039 成员 243,237 内容