1.计算机内存划分为一个个内存单元,每个内存单元占1字节,而每个内存单元都有一个特点的编号,称为地址,也称为指针,通过指针可以找到对应的内存单元并调用内存单元内存放的数据.
2.指针变量:存放指针的变量称为指针变量,表示形式如下:指向数据类型* 变量名 ,通过*(解引用操作符)操作指针变量可以找到变量指向的内存空间.
3.二级指针:指向指针变量的指针叫做二级指针,表示形式如下:指向指针类型*变量名.eg:char**p,p中存放为指向字符指针类型的指针.
4.指针数组:存放指针的数组,表达形式如下:int*(指针类型)arr[].
5.指针变量大小:指针变量大小与指针类型无关,至于系统有关,32位系统下为4字节,32bit,64位系统下位8字节,64bit.
6.指针类型决定了指针的访问权限,int*可访问4字节,char*只可访问1字节.
7.void*类型:该类型可接受任意类型指针,但不可访问,若想访问,需用()强制类型转换后访问.
8.数组指针:指向数组的指针,指向的位第一个元素的地址,基本格式如下:数组元素类型(*p)[].
9.函数指针:指向函数的指针,基本格式如下:函数返回值类型(*变量名)(参数类型).通过函数指针调用函数,被调用的函数称为回调函数.
10.函数指针数组:数组元素位函数指针的数组,基本格式如下:函数返回值类型(*数组名[])(函数参数类型).
11.指针运算:指针加减法:指针+n,根据指针类型决定跳过多少字节. eg:int*p+1表示p指针跳过4字节后指向的元素.
指针-指针:表示两个指针之间元素的个数,但两个指针必须指向同一空间.
指针+指针无意义.
12.指针与数组的关系:数组名表示数组首元素的地址,arr[i]本质=*(&arr[0]+i).
二维数组与指针的关系:二维数组可看为行个数个数组,二维数组的数组名也表示首元素地址,这个首元素表示位第一行那个数组的地址,是个数组指针,arr[i][j]
=*(*(arr+i)+j)、
13.结构体指针:指向结构体类型的变量,结构体类型创建:(结构体类型)struct name 变量名
,eg:struct student
{
char name[20];int age;
}结构体变量创建:结构体类型 变量名,eg:struct student s1.
调用:s1.name="lisi"; s1.age =10.
结构体指针创建:(结构体类型*)变量名.eg: (strcut student*)p.
标签:语言,指向,---,数组,类型,字节,变量,指针 From: https://blog.csdn.net/2402_87383600/article/details/142350723