C语言指针问题!总觉得p改变了
#include <stdio.h>
void sp(int *a)//这里传入的是p
{
int b=2;
a=&b; //这里赋值的时候,是不是改变了p的指向?为什么?
*a=*a*2;
printf("%d,",*a);
}
main()
{
int k=3,*p=&k;
sp(p);//这是按地址传递吗?它传到形参a时会产生一个与它一样的临时指针变量吗?
printf("%d,%d\n",k,*p);
}
看了一天了,希望大神指点迷津
void sp(int *a)//这里传入的是p
{
int b=2;
a=&b; //这里赋值的时候,是不是改变了p的指向?为什么?
*a=*a*2;
printf("%d,",*a);
}
main()
{
int k=3,*p=&k;
sp(p);//这是按地址传递吗?它传到形参a时会产生一个与它一样的临时指针变量吗?
printf("%d,%d\n",k,*p);
}
看了一天了,希望大神指点迷津

...全文
相关推荐
c语言指针习题及答案
c语言中指针是较为重要的知识点,掌握指针你会更上一层楼。
**p与 *&p的区别, 即指向指针的指针和引用指针变量的区别
一份总结“指向指针的指针和引用指针变量区别”的精华笔记,很多人对于**p与 *&p的差别不是很清楚,相信这个笔记可以解决你的疑惑。
C语言中指针 int *p=0;和int *p;*p=0;和”&“的关系和区别详解
初学者在学习C语言的时候,最头疼的可能就是指针,话不多说。让我们直接进入正题 直接上代码 int main(void) { int *p = 0; printf(%d, *p); system(pause); return 0; } 直接运行,好了,程序是不是报错了?那就对了。因为此时的int *p=0实际等于int *p; p=0; 让我们来验证一下对不对 int main(void) { int *p = 0; printf(%d, p); system(pause); return 0; } 这说明此时指针*p装的不是0,而是以0作为地址的一个值,
C语言中常量指针与指针常量区别浅析
主要介绍了C语言中常量指针与指针常量区别,有需要的朋友可以参考一下
C语言指针总结
指针是C语言中的难点,也是C语言中的精华所在,本文档列举了指针使用中的常见注意事项及易混淆知识点的对比,为C语言的初学者掌握指针提供了清晰的思路。


