指针易错概念整理

本文详细阐述了指针在C语言中的基本概念,包括内存占用、类型影响、const修饰符的作用,以及避免野指针的方法。此外,还介绍了指针数组、数组指针、回调函数和qsort函数的用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、指针无论是什么类型,所占内存都是4或8个字节(存的是地址)(X86是32位环境,占四个字节;X64是64位环境,占八个字节)地址就是32或64位二进制0或1组成的序列,位数由编译环境决定。

2、指针类型决定了指针进行+1或-1操作时,一次走远的距离。而其他类型比如整型,进行+1就真的只是+1,而整型指针变量相当于+4。

3、const如果放在*的左边,修饰的是指针指向的内容,保证指针指向的内容不能通过指针来改变。const如果放在*右边,修饰的是指针变量本身,保证了指针变量的内容不能修改,但是指针变量指向的值可以通过指针改变。

4、指针运算:

(1):指针加减整数:根据指针变量类型决定移动距离。

(2):指针减指针:整数。得到的是两个指针之间的元素个数,而不是距离。

(3):指针的关系运算:

指针和指针比较大小,地址和地址比较大小:

5、为了避免野指针:1.指针初始化  2.注意不要超过有效范围。

6、指针数组与数组指针:

指针数组是存放指针的数组(数组内的每一个元素是指针)形如int *p[10]

数组指针是指向数组的指针 形如int (*p)[10]

二维数组的数组名也是数组首元素的地址,首元素的地址就是第一行的地址,第一行的地址就是一维数组的地址,类型是数组指针类型。

7、回调函数:

形如主函数中调用了calc(add),

则被调用函数为void calc(int (*pf)(int int))

其中add函数为int add(int int)

8.关于qsort函数的使用。

需要包含#include <stdlib.h>

qsort(void*a,size_t lenth,sizeof(a),int (*compare)(const void*,const void*))

详见https://mp.csdn.net/mp_blog/creation/editor/136436853

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值