指针就像Java中的引用概念一样,使用地址指引程序找到内存中的数据,绕来绕去还是有点晕的,不过多打印几次,查查资料,思考一下也能想通。
指针变量
指针变量在内存中存放的是地址,在编译系统中占4个字节,指针变量定义方法为:
#include <stdio.h>
int main(){
int a=100;
int *p;
p=&a;//取址
printf("%d\n",p);//地址
printf("%d\n",*p);//地址指向的值
return 0;
}
[*]符号表示该变量为指针变量,在打印的时候,无符号则会打印出变量存储的地址数据,加上星号会打印出对应地址的数据,此刻的星号表示取值,[&]符号表示取址,使用指针则可以间接访问数据。
指针数组
指针是左值,可以被修改,数组名是地址常量,不可以被修改,指针数组定义方法为:
#include <stdio.h>
int main(){
int a=100;
int b=200;
int c=300;
int *pp[3]={&a,&b,&c};//指针数组,存储元素为地址
for (int i = 0; i < 3; ++i) {
printf("%d\n",pp[i]);