C语言 初识指针
【摘要】
指针变量
:用来存放一个变量地址的变量就叫指针变量。
格式一:
类型名 *指针变量名1,*指针变量名2...
int *p; char *ch; int a;char c;
指针的作用都一样的,都是用来存放地址的,为什么还要分类型的原因是指针变量p只能存放整型变量地址,...
指针变量 :用来存放一个变量地址的变量就叫指针变量。
格式一:
类型名 *指针变量名1,*指针变量名2...
int *p; char *ch; int a;char c;
指针的作用都一样的,都是用来存放地址的,为什么还要分类型的原因是指针变量p只能存放整型变量地址,指针变量ch只能存放字符变量地址。
如何让一个指针存放一个变量地址呢?
p=&a; ch = &c;
&:叫做取址符 *叫指针运算符
变量的定义就是给其开辟存储单元的过程。
任何变量都有自己的存储地址。
指针就是用来存放变量地址的。
指针也是个变量。
指针也需要个地址
专门用来存放指针的地址,他就是指向指针的指针。
int **p ,*s
p = &s;
**p就是一个指向指针的指针。它里面只能存放同种数据类型的指针的地址。
C语言提供了一个称做“间接访问运算符”,的单目运算符:“*”当指针变量中存放了一个确切的地址值是,就可以用“间接运算预算符”通过指针来引用改地址的存储单元。
如:
int *p,i=10,j;
p = &i; //10 指向i的地址
j=*p; //10 把p指向的地址的值赋给j
j=i; <--------> j=*(&i);
再如:
int *p,k=0;
p=&k;
*p=100;
*p+=1;
注意:当*p出现在赋值号左边时,代表的是指针所指的存储单元,当*p出现在赋值号右边时,代表的是指针所指的存储单元的内容。
*p+=1; 给指针所指的空间里的值+1并返回了,,
++*p;*和++的运算优先级相同,从右到左结合所以 ++(*p)
(*p)++; 不能省略()否则造成地址的移动出现错误
利用指针来输入两个数,并且取出其中最小值,
#include
main()
{
inta,b,min,*pa,*pb,*pmin;
pa=&a;
pb=&b;
pmin=&min;
scanf("%d%d",pa,pb);
printf("a=%d,b=%d",a,b);
*pmin=*pa;
if(*pa>*pb)
*pmin=*pb;
printf("min=%d",min);
return 0;
}
文章来源: czhenya.blog.csdn.net,作者:陈言必行,版权归原作者所有,如需转载,请联系作者。
原文链接:czhenya.blog.csdn.net/article/details/76092111
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)