C语言指针
得到变量的地址
可以使用&运算符找到变量保存在内存中的位置
int x = 1;
printf("x的内存地址是"%p\n",&x)
%p格式符将地址以16进制格式输出。
&x将找到变量x的地址。一般我们会使用一个指针变量保存这个地址。
指针变量是一个用来保存存储器地址的变量,当声明指针变量时,需要说明指针所指向的地址中保存的数据的类型:
int *addr_x = &x;
声明一个int类型的指针变量addr_x,&x或者x变量的地址,并保存这个地址。
读取地址的内容
根据存储器的地址读取保存在那里的数据,可以使用*运算符
int v_s = *addr_x
&运算符是接受一个数据,然后获取其内存地址。
*是接收一个地址,然后获取这个数据的值。
这两个运算符正好相反。
改变地址的内容
C语言中的指针变量还可以进行运算,可以使用*运算符。
将指针变量放在赋值运算符左边。
*addr_x = 100;
代码示例
#include<stdio.h>
void go_source_east(int *lat,int *lon){
//(右边*lat)读取lat地址的lat的内容,并改变地址中的内容(左边lat*)。
*lat = *lat-1;
*lon = *lon+1;
}
int main()
{
int latitude =32;
int longitude =-64;
// 通过&来找到这两个变量在内存中的地址
go_source_east(&latitude,&longitude);
printf("停!当前位置是:[%i,%i]\n",latitude,longitude);
return 0;
}