指针符号介绍
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
*是解引用运算符&是取地址运算符
*p=&a这样写是不正确的(除非p是指向指针的指针),这时候*p前面要有类型符(比如int等),通常的情况是这样用的int *p=&a;这一句作用相当于int *p; p=&a; 两句,这句话的意思是定义一个int 类型指针,然后用a的地址给p赋值;
对于指针p来说,*p就是指针p所指向的内存空间存储的值,*p=a就是把p所指向的那一内存空间的值赋值为a,p本身不改变p=&a就是用a的地址对p赋值,a是一个变量,&a就是存储这个变量的内存地址,指针存储的就是一个地址,*p就是这一地址中的内容,这样说能明白吗??不明白来问我吧,我百度hi经常在线#include
int fun(int *x,int y)
{
int t ;
/**************found**************/
t = *x ; *x = y ;
/**************found**************/
return(t) ;
}
main()
{
int a = 3, b = 8 ;
printf("%d %d\n", a, b) ;
b = fun(&a, b) ;
printf("%d %d\n", a, b) ;
}
结果a=8,b=3
在上述程序中,指针x指向a,*x=y,意思指把y的值赋给指针x,而指针x 指的是a,相当于把y的值赋给了a,
x=&y意思是指针指向了y,而不指向a了,指针x的值是y的值,而a的值还是a.