C语言指针概念
C语言指针是一个特殊的变量,其里面存储的数值被解释为内存里面一个地址。学好C语言指针必须理解和区分以下4个概念。
一、指针的类型
二、指针所指向的类型
三、指针的值(指针所指向的内存区)
四、指针本身所占据的内存区
指针变量存放的内容就是地址,或者说指针变量的值就是地址。下面看个例子
char * pStu //定义的指针变量
*表示pStu是一个指针变量,char是指针变量pStu指向的变量的数据类型。整个C语句表示:定义了一个指向char类型变量的指针变量,变量名称为pStu。但具体pStu指向哪个char类型的变量,这就要看在使用pStu时,给pStu赋予的值,值是什么就指向哪儿。下面是个案例
#include <stdio.h> int main(void) { int a=1,b=10; int *p1,*p2; p1=&a; p2=&b; printf("P1地址是%d,p1存储的值是%d\n",p1,*p1); printf("p2地址是%d,p2存储的值是%d\n",p2,*p2); printf("p1-1地址存储值是%d\n",*(p1-1)); printf("p1地址中的值-1后的值是%d\n",*p1-1); printf("*(p1-1)的值和*p1-1的值不同\n"); return 0; }