指针
指针定义:指针变量就是用来存储另一个变量地址的这么一个变量。
指针大小统一都是4字节。
可以定义任何类型的指针。
可以构造 指针数组, 数组指针, 指针函数, 函数指针。
例如定义整型指针
int a;
int *p = &a;
或
int a;
int *p = NULL;
指针字符串
char *pstr;//定义指针字符串。
指针变量与普通变量的关系:
int const *p;//p的指向可以变,*p的内容不能变
int *const p;//p的指向不能变,但指向的内容可以变
const int *const;//都不能变
指针变量与数组的关系:数组名就是数组首地址
指针与字符串的关系:
指针与指针的关系:二级指针
int a = 10;
int *p = &a;
int **q = p;
printf("%d\n",**q);//打印10
printf("%d\n",*p);//打印10
printf("%d\n",a);//打印10
指针数组:指针类型的数组,首先他是一个数组,里面存放是指针。
数组指针:他是一个指针,指向一个数组;
例如:
int num[2][3]
int (*pnum)[3] = NULL;
pnum = num;
指针函数:他是一个函数,他要返回一个某类型的指针。
注意:如果要返回数组首地址时,在函数中数组要定义为static(生存周期增加),返回值要是全局变量,不能返回局部变量。
int *pfunction()
{
函数体
};
函数指针:他是一个指针,指向一个函数。
void func()
void (* pfunction)(int x) = NULL;//声明一个函数指针
pfunction=func; //将func函数的首地址赋给指针pfunction
一定要注意类型