C指针笔记

 1.指针类型决定了:指针解引用的权限有多大:

例如

int a = 10;

int *p  = &a;//这里10被存入a中

*p = 0;//这里a的值变为0

如果是

int a = 10;

char *p  = &a;//这里10被存入a中

*p = 0;//这里a的第一位地址的值变为0

2。指针类型决定了,指针走一步,能走多远(步长)  

3.指针未初始化会造成野指针   越界访问同样会造成野指针    

当前不知道P应该初始化为什么值的时候,直接主动初始化为NULL(空指针)

 指针减去指针得到的是两个指针之间的元素个数(前提是两个指针指向同一块空间 )

//数组名是数组首元素的地址

但有两个例外:1.sizeof(数组名)-数组名表示整个数组,计算的是整个数组的大小,单位是字节

2.&数组名 - 数组名表示整个数组,取出的是整个数组的地址;

二维数组的首元素是第一行;

数组指针:指向数组的指针

double * d[5];

double* (*pd)[5] = &d;//pd就是一个数组指针

数组名 != &数组名,但是 函数名 == &函数名

函数指针:

存放函数地址的指针

qsort函数:快速排序的实现    

const放到*右边代表指针变量不能改变,放到*左边代表指针所指向的内容不能改变

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值