☰
C语言第十课:指针(四)
2026/9/28 11:41:31 网站建设 项目流程

一、字符指针变量

《剑指offer》中收录了⼀道和字符串相关的笔试题,我们⼀起来学习⼀下

str1 and str2 are not same:

str1 和 str2 只是两个内容一样的不同数组,两个数组的首元素的地址是不一样的
str3 and str4 are same :

"hello bit."是字符串常量,放在只读常量区。

C 语言有字符串常量池优化:相同的字符串字面量,在常量区只存一份。

str3 和 str4 都保存这个唯一常量字符串的首地址,两个指针的值(地址)相同。

二、数组指针变量

1.数组指针变量是什么

字符指针变量:存放字符的地址,指向的是字符

ex:

char* pc

整型指针变量:存放的是整型变量的地址,指向的是整型变量

ex:

int n = 10;

int* pn = &n;

数组指针变量:存放数组的地址,指向的是数组

ex:

int arr[5];

int (*p)[5] = &arr;

2.数组指针类型应该怎么初始化

三、二维数组传参的本质

数组指针一般是在二维数组传参时才会使用

二维数组是一维数组的数组,二维数组的元素是一维数组,每一行就是一个元素,所以首元素就是第一行。

二维数组传参,形参的部分可以写成数组,也可以写成指针的形式

四、函数指针变量

1.函数指针变量的创建与使用

函数指针 -- 指向函数的指针

函数指针变量 -- 存放函数的地址

函数名也是函数的地址

来自《C陷阱与缺陷》的两段代码:

2.typedef关键字

typedef是用来类型重命名的,可以将复杂的类型简单化

由上图我们可以发现a是指针类型,b是整型类型。如果我们想同时把这两个变量设为指针类型,我们可以typedef,如下图

typedef 对数组指针与对函数指针的重命名

函数指针也是同理

五、函数指针数组

函数指针:存放函数地址的指针,指向一个函数。

函数指针数组:数组里的每一个元素都是函数指针,数组存储多个同类型函数的地址。

六、转移表

函数指针数组的用途:转移表(用函数指针数组实现的查表分支结构)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询