C语言指针详解
1.什么是指针
Ans:指针是一个变量,用来存放地址的变量
常见指针操作
#include<stdio.h>
int main(){
int* p;
//这里定义了一个指针变量(用来存放变量地址);
//注意:指针变量名:p,而不是*p;这边可以这样理解:我们定义了一个指针变量,它的类型是(int*),变量名:p;
//但是C++选手为了美观,就写成int *p.这个和int* p是一个意思;
int a = 1;//定义了一个变量a;
p = &a;//&:取地址符,把a在计算机内部存放地址给p;
printf("%d %d\n",p,&a);
int *p1;//int* 指针
double *p2;//double* 指针
char *p3;//char* 指针
//上面p.p1,p2,p3是存放地址的,那么怎么获取里面的值
printf("%d\n",*p);//我们通过*p来获取里面值
*p = 2;//也可以改变里面的值
printf("%d %d\n",a,*p);
}
2.数组和指针
#include<stdio.h>
int main(){
int Arr[3]={0,1,2};//定义Arr数组
int *p;//定义int*指针
p = Arr;//这里是获取Arr数组的首地址,这里也可以写成p = &Arr[0];
printf("%d %d\n",Arr,&Arr[0]);//打印首地址
printf("\n");
int index = 0;
//使用指针遍历数组
while(index<3){
printf("%d ",*(p+index));
index++;
}
return 0;
}