对于C语言指针的理解

对于C语言指针的理解

学习c语言中最难得部分就是指针了

  1. 指针是什么?
    指针本身是一个变量,它存储的是数据在内存中的地址而不是数据本身的值。它的定义如下:

  2. 指针的形式:
    类型 *变量名
    比如int *p就是一个整型的指针
    char *p则是一个字符型的指针

  3. 如何把一个元素的地址给指针p
    p=&a将变量a的地址指针p.

  4. 如何得到指针p对应的值
    a=*p是将指针p对应的值变量a

  5. 指针的算术运算
    p++ 是将地址++,而不是指针p地址上对应值++
    举例:

int a=5;
int *p=&a;
p++;

注:整型在内存中占四个字节
假设原来a的值储存在地址0x0012FF2C
那么当int *p=&a后p的值则为0x0012FF2C
p++后p的值为0x0012FF31
p--同理

  1. 简化指针理解
    指针就像是一个抽屉抽屉里装的东西就是指针地址上对应的值

  2. 指针的输出

printf("%p",p)    //输出结果是一个地址(p指向的变量的地址)。
printf("%d",*p)   //输出结果是p指向的变量的值。
printf("%d",&p)   //输出结果是一个地址(指针p的地址,因为指针也是一个变量所以也有对应地址来存储)
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值