本文来介绍下C语言的指针,都说指针是C的灵魂,如果学C不会指针,大概就学了个“假”C语言。
首先 我们要明确两个概念,指针和指针变量。
指针:变量的地址是该变量的指针
指针变量:变量的地址
另外“*”是取值操作;“&”是取地址操作
那么我们如何定义一个指针变量呢?
采取的方法就是“*” 一般形式是: *变量名
下面都是合法定义:
float *pointer_3;//pointer_3是指向float型变量的指针变量
char *pointer_4;//pointer_4是指向f字符型变量的指针变量
可以使用赋值语句让一个指针变量得到另一个变量的地址,从而使它指向该变量。
定义指针变量时要注意的两点:
1.在定义指针变量时必须指定基类型
例如:
float a;//指定基类型
float *pointer_1;
pointer_1=&A;
2.指针变量的引用“&”
指针变量中只能存放地址(指针),不要将任何非地址类型数据赋给一个指针变量。
如果已经执行语句 pointer_1=&a;
&pointer_1的含义是什么?
“&”和“ * ”的优先级别相同,但按照自右而左的方向,所以会先进行pointer_1,这个结果是变量a,再执行&运算。
因此,&*pointer_1与&a相同,即变量a的地址。
(pointer_1)++相当于a++
注意括号是必要的,因为 ++ 和为同一优先级