指针与地址

        每一位学C语言的同僚都知道,指针在C中占有非常重要的角色,没有掌握指针就相当于没有掌握C语言的精华.但是,指针对很多刚学C的人来说,有相当的难理解,因为他的使用很灵活,所以很容易运用混淆.我在学习的过程中也遇到很多类似的问题.以下是我的一点点体会:

       指针就是变量的内存地址,用一个变量来专门存放另一个变量的地址(指针)时就称这个变量为指针变量,指针变量的定义方式为:基类型  *指针变量名,如int  *p (定义了一个整型的指针变量p).在刚开始学指针时,很多人都搞不懂*p,p和&p这三个的区别,以下我通过一个小程序来总结一下.

#include <stdio.h>
int main(void)
{
 int a=20;
 int *q;                                                                           //定义一个整型的指针变量q
 q=&a;                                                                          //将变量a的地址放在指针变量q中
 printf("变量a的地址为: %p\n",&a);                          //输出a的地址
  printf("变量a的值为: %d\n",a);                                //输出a的值
  printf("指针变量q的地址为: %p\n",&q);                  //输出q的地址
  printf("指针变量q的值为: %p\n",q);                         //输出q的地址的值
  printf("指针变量q所指向的值为: %d\n",*q);            //输出a的地址
}

        运行之后的结果为:

变量a的地址为: 0240FF5C
变量a的值为: 20
指针变量q的地址为: 0240FF58
指针变量q的值为: 0240FF5C
指针变量q所指向的值为: 20

       从结果可以看出,指针变量与其他变量一样,也有自己的地址.其中,使用%p作为占位符来显示一个地址.

        通过上面的程序演示,我们就可以清楚*p,p和&p三者所指的目标了,希望对需要的朋友有点小帮助!

 

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值