响应式网站建设必推全网天下,郑州快速建站价格,做视频网站赚做视频网站赚,重庆免费发布信息网站1. 指针语法解剖
任意的指针#xff0c;不管有多复杂#xff0c;其定义都由两部分组成。 第1部分#xff1a;指针所指向的数据类型#xff0c;可以是任意的类型第2部分#xff1a;指针的名字 char (*p1); // 第2部分#xff1a;*p1; 第1部分#xff1a;ch…1. 指针语法解剖
任意的指针不管有多复杂其定义都由两部分组成。 第1部分指针所指向的数据类型可以是任意的类型第2部分指针的名字 char (*p1); // 第2部分*p1; 第1部分char;
char *(*p2); // 第2部分*p2; 第1部分char *;
char **(*p3); // 第2部分*p3; 第1部分char **;
char (*p4)[3]; // 第2部分*p4; 第1部分char [3];
char (*p5)(int, char); // 第2部分*p5; 第1部分char (int, float); 注解
上述示例中p1、p2、p3、p4、p5本质上并无区别它们均是指针上述示例中p1、p2、p3、p4、p5唯一的不同是它们所指向的数据类型不同第1部分的声明语句如果由多个单词组成C语言规定需要将其拆散写到第2部分的两边
char (*p1);
表示 p1 是一个指向 char 类型的指针。
这意味着 p1 可以指向一个 char 类型的变量。
示例代码
char c A; // 声明一个 char 类型的变量 c并赋值为 A
char *p1; // 声明一个指向 char 类型的指针 p1
p1 c; // 将 p1 指向变量 c 的地址// 输出 p1 指向的字符
printf(p1 points to: %c\n, *p1); // 输出p1 points to: Achar *(*p2); 表示 p2 是一个指向指向 char 类型的指针的指针。
这意味着 p2 可以指向一个 char* 类型的变量字符串指针。
示例代码
char *str Hello; // 声明并初始化一个字符串指针变量 str
char **p2; // 声明一个指向指向 char 类型的指针的指针 p2
p2 str; // 将 p2 指向字符串指针 str 的地址// 输出 p2 指向的字符串
printf(p2 points to: %s\n, *p2); // 输出p2 points to: Hellochar **(*p3);
表示 p3 是一个指向指向指向 char 类型的指针的指针的指针。
这意味着 p3 可以指向一个指向字符串指针的指针的变量。
示例代码
char *strs[] {One, Two, Three}; // 声明并初始化一个字符串指针数组 strs
char **p3; // 声明一个指向指向 char 类型的指针的指针的指针 p3
p3 strs; // 将 p3 指向字符串指针数组 strs 的地址// 输出 p3 指向的字符串指针
printf(p3 points to: %s\n, **p3); // 输出p3 points to: One// 输出 p3 指向的字符串指针数组中的每个字符串
for (int i 0; i 3; i) {printf(Element %d: %s\n, i, *(*p3 i));
}
// 遍历输出结果
Element 0: One
Element 1: Two
Element 2: Threechar (*p4)[3];
表示 p4 是一个指向长度为3的 char 数组的指针。
这意味着 p4 可以指向一个长度为3的 char 数组。
示例代码
char arr[] {A, B, C}; // 声明并初始化一个长度为3的 char 数组 arr
char (*p4)[3]; // 声明一个指向长度为3的 char 数组的指针 p4
p4 arr; // 将 p4 指向数组 arr 的地址// 通过 p4 解引用输出数组元素
for (int i 0; i 3; i) {printf(%c , (*p4)[i]);
}//输出结果
A B C
char (*p5)(int, char); 表示 p5 是一个指向函数的指针这个函数接受一个 int 类型和一个 char 类型的参数并返回 char 类型的值。
这意味着 p5 可以指向具有特定参数和返回类型的函数。
示例代码
char myFunction(int num, char ch) {// 实现函数功能的代码return ch num;
}char (*p5)(int, char); // 声明一个指向函数的指针 p5
p5 myFunction; // 将 p5 指向函数 myFunction// 调用通过 p5 指向的函数
char result (*p5)(3, A);
printf(Result: %c\n, result);//输出结果
Result: D