说到指针,绝对是C语言中当之无愧的老大哥。很多人觉得指针很神秘,是真的吗?其实不然。
C语言是一门非常适合底层开发的高级语言,原因就在于它有指针。
指针,说白了它就是内存中的某个字节的地址,就像你的家庭住址,我们只是常说成籍贯。
所以:指针==地址。
揭开了指针的面纱后,是不是觉得豁然开朗。接下来,有几个概念还需要清楚:
(1)指针变量与指针
指针变量是一类特殊的变量,专门用于存放指针。哈哈,说白了,它就是专门存放地址的变量,类似于户口本,户口本中就存你的籍贯。
指针变量声明:数据类型 *变量名(int *pointer float *number char *ber),与一般变量声明格式比,就是多了个*。
(2)*与&
*:取值运算符,即获取变量的内容;(注意:不同于指针变量声明时的*)
&:取址运算符,即获取变量的地址,就是指针。
下面举一个简单的例子:
int i=2000; //声明一个变量 i,它的值为2000,假设i=10001000,即在地址为10001000的字节中存储2000
int *pointer=&i; //声明一个指针变量pointer,并把 i表示的地址赋值给它,即pointer也指向10001000,即pointer的存储内容为2000,
printf("%d ",*pointer); //输出pointer的值,即2000
printf("%d ",&pointer) ; //输出pointer的地址,即10001000