定义与初始化
- 定义:int *p=&a;
- 初始化:int *p ; p=&a;
也就是说,定义时使用int p表示定义p为一个指针变量;而使用时,p代表地址,p代表其内容。
char a[ ]和char *a
char a[ ] | 内容可变,地址不可变 | char *const p,是指针常量 |
---|---|---|
const char *a | 内容不可变,地址可变 | const char *p,是指针变量 |
char *a | 内容不可变,地址可变 |
这里“地址”指a的值。
这里“内容不可变”指不可以编辑*a的具体某一个单元。
注意:char const *p=const char *p
多层指针嵌套
char a[ ][ ] ;
a[0]+1=&*(a[0]+1) ;
a+1=&*(a+1)=&a[1] ;
a[i][j]=*(a+i)[j]=*((*(a+i))+j) ;
指针应用
- 指针作为函数参数
- 指针作为函数返回值
- 指向函数的指针(指向函数在内存中的首地址)
表示方法
int *p | 定义一个指向整型的指针 |
---|---|
int (*p)[6] | 定义一个指向数组的指针 |
int *p[6] | 定义一个指针数组 |
int *p( ) | 定义一个返回【指向整型指针】的函数 |
int (*p)( ) | 定义一个指向【返回整型函数】的指针 |
int (p)( ) | 定义一个指向【返回(指向整型指针)函数】的指针 |