指针变量

举报
无敌清风蓝 发表于 2023/08/30 11:32:16 2023/08/30
【摘要】 指针变量

1.指针变量

指针变量是存其他变量地址的变量,也叫该指针变量指向某某变量,如这里的mypoint指向i

变量的指针,就是变量的地址,变量mypoint中保存着变量i的地址,因此变量mypoint就是指向变量i的指针变量

指针变量在定义时,会在定义的语句中引入一个“*”,表示“这是一个指针变量”

int * a1;定义一个指针变量,这个指针变量指向整型变量,指针变量前面有个*,这个是和普通变量最明显的区别

2.举例说明

现在要让一个指针变量指向一个整型变量,用赋值语句可以到

a1 = &i;

注意:定义指针变量时,前面有*,但是使用指针变量时,前面没有*,所以指针变量名是a1,而不是*a1

int * a1 = & i;这属于定义时候初始化,现在a1指向i

等价于

int * a1;

a1 = &i;

*这个指针运算符不用于定义变量指针的场合时,代表的是它所指向的变量

比如上面的

i = 10;

int * a1 = & i;

printf(“%d”, * a1); // 10 ,*a1代表i

3.其他形式

再提一嘴

(*a1)++等同于i++

*a1++等同于*(a1++)

a1++是什么意思呢,我们知道a1就是存的i的地址,那让i的地址++,而由于i是个整型,所以a1++相当于a1要跳过4字节,所以a1不再指向i了,而是指向i后面的内存

那*(a1++) = 5是什么意思,首先这是将a1所指向的内容赋值为5(因为++是先用后加,所以此时相当于是*a1 = 5),因为a1开始指向i变量,所以是让i变量的值为5;其次让a1自加1,也就是a1++,导致a1指向i后面的地址,如果i的起始地址是1000,那a1指向的地址现在为1004

指针变量做参数,可以间接在函数汇总改变指针变量所指向的变量的值,从而达到在被调用函数内改变外界变量值的效果

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。