指针笔记

来源:互联网 发布:mac配置qq企业邮箱 编辑:程序博客网 时间:2024/06/05 10:51

1、“指针”是指地址, 是常量,“指针变量”是指取值为地址的变量。 

2、int *p1;表示p1是一个指针变量,它的值是某个整型变量的地址。

3、指针变量的赋值

(1)指针变量初始化的方法 int a;

int *p=&a;
(2)赋值语句的方法 int a;
int *p;
p=&a;

(3)不允许把数值赋给指针变量

p=1000;//这是错的

(4)*p=&a;//错的

4、指针运算符

(1)取地址运算符&

(2)取内容运算符*

5、二维数组a的i行j列元素等于*(*(a+i)+j)

6、int(*p)[4]数组指针

int *p[4]指针数组 ,它有4个数组元素, 每个元素值都是一个指针,指向整型变量

7、字符数组和字符串指针的区别

(1)字符串指针变量本身是一个变量,用于存放字符串的首地址。而字符串本身是存放在以该首地址为首的一块连续的内存空间中并以‘\0’作为串的结束。字符数组是由于若干个数组元素组成的,它可用来存放整个字符串。
(2). 对字符数组作初始化赋值,必须采用外部类型或静态类型,如: static char st[]={“C Language”};而对字符串指针变量则无此限制,如: char *ps="C Language";
(3). 对字符串指针方式 char *ps="C Language";可以写为: char *ps; ps="C Language";而对数组方式:
static char st[]={"C Language"};
不能写为:
char st[20];st={"C Language"};
而只能对字符数组的各元素逐个赋值。

8、函数指针变量

int (*pf)();表示pf是一个指向函数入口的指针变量,该函数的返回值(函数值)是整型。

例如:

int max(int a,int b){……};

main(){
int max(int a,int b);
int(*pmax)();
//定义函数指针变量

pmax=max;//把被调函数的入口地址(函数名)赋予该函数指针变量

z=(*pmax)(x,y);//用函数指针变量形式调用函数

}

9、返回指针值的函数称为指针型函数