【C语言】指针由浅入深全方位详解

07-16 1064阅读

目录

指针定义

指针类型

野指针

指针运算 

指针与数组的联系

二级指针 

指针数组 

字符指针 

数组指针 

数组参数,指针参数 

函数指针 

函数指针数组

回调函数 

练习题 

代码仓库 


指针定义

1. 指针是内存中一个最小单元的编号,也就是地址。

2. 平时口语中说的指针,通常指的是指针变量,是用来存放内存地址的变量。

3. 我们可以通过 &(取地址操作符) 取出变量的内存起始地址,把地址可以存放到一个变量中,这个变量就是指针变量。

4. 指针的大小在32位平台是4个字节,在64位平台是8个字节

【C语言】指针由浅入深全方位详解

int a = 100;
int * pa = &a; 
//*表示pa是指针变量。
//int表示 1.pa指向的类型是int 2.pa解引用的时候访问的对象大小是sizeof(int)。

指针类型

1. 指针类型可以决定指针解引用的时候访问多少个字节(指针的权限)

int* 的指针解引用访问4个字节。

【C语言】指针由浅入深全方位详解

char* 的指针解引用访问1个字节

【C语言】指针由浅入深全方位详解

2. 指针类型决定指针加1减1操作时的步长

整型指针+1跳过4个字节,字符指针+1跳过1个字节

【C语言】指针由浅入深全方位详解


野指针

1. 概念

野指针就是指针指向的位置是不可知的(随机的、不正确的、没有明确限制的)。

2. 野指针成因

//1.指针未初始化
int *p;//局部变量指针未初始化,默认为随机值
*p = 20;
//2.指针越界访问
 int arr[10] = {0};
 int *p = arr;
 int i = 0;
 for(i=0; i
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]