C语言指针详解之指针类型

时间:2023-01-22 13:57:53

前言

C语言有多种数据类型,如:

char(字符型),int(整型),short(短整型),long int(长整型),long long,float(单精度浮点型),double(双精度浮点型),

在这些类型后加上*就表示指针,不同类型表示该指针指向不同类型的数据。除以上类型的指针外,还存在一些特殊的指针,如数组指针,函数指针等。

一、数组指针

1.什么是数组指针

数组指针任然是一个指针,该指针指向的是一个数组,例如字符指针char*,字符是该指针指向目标的数据类型

2.如何定义一个数组指针?

int (p)[10];如上,括号的优先级大于[],因此p与结合,p是一个指针变量,指向的是一个整型数组

3.数组指针的用途是什么?

作为形参接收二维数组的首地址(二维数组的每个元素都是一个一维数组)

二、函数指针

1.什么是函数指针,如何定义

指向函数的指针,例如

void test()

{

}

void (*p)()=&test;

p就是一个函数指针,它指向的是一个返回类型为void,没有函数参数的函数

我们都知道指针变量在解引用后会得到指针变量指向目标的值,例如int b=1;int *a=&b;a是指向整型数据类型b的指针变量,*a=b=5,

那么函数指针解引用得到的会是什么呢?

2.函数指针的用途

接收函数地址