C语言之指针的用法与常见错误(1)

指针是变量的一种,里面是一个地址,通过这个地址找到要找的数据

实质:单元的地址就是指针内容;

在32位的操作系统中,所有类型的指针长度都是4个字节

原因:指针是用来保存地址的,地址的长度是由操作位数决定的,是由操作系统运行处理位数决定的

* 有2个含义

定义的时候:表示后面的变量是一个指针(不涉及取值)

使用的时候:表示取值(取地址里的数据)

int *p = &a;       //(√)  int型指针 p 指向 a 的地址
int *p; p = &a;    //(√)  先定义指针 p 为int型, 再指向 a 的地址
int *p; *p = &a;   //(×)  p 为 int 型指针,*p为指针 p 指向的地址对应的数据,而 &a 则是 a 的地址
int *p = &a;                    //p 指向 a 字符  p + 1 加一个字节
char *q = &b;                   //p 指向 整型 b q + 1 加四个字节

指针的运算

int x = 3, y = 0, *px = &x;

y = *px + 5;           //*px 为 x 的值 3,y = 8
y = ++*px;             //*px 的值加一,y = 4
y = *px++;             //先执行*px = 3,然后y = 3 + 1 = 4
*px++          //取 *p 的值,然后地址加1
(*px)++        // ++是 x 的内容加1

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值