避免副本 在函數調用的時候,可以只傳遞數據的引用,而不用傳遞數據
數據共享 兩段代碼可以同時操作同一份數據,而不是兩份獨立的副本
#include <stdio.h> int main(){ int x=5; printf("x lives at %p\n",&x);//%p格式符將地址以16進制的格式輸出 int* address_of_x=&x;//用指針變量保存x的地址 int value=*address_of_x;//通過*運算符可以獲取指針地址所指向的值 printf("%i\n",value); *address_of_x=10;//改變address_of_x地址所指向的空間的值 printf("After the change,x = %i\n",x); return 0; }
#include <stdio.h> void go_south_east(int* lat,int* lon){ //通過*運算符找到lat地址對應的空間 *lat=*lat-1; *lon=*lon+1; } int main(){ int latitude=32; int longtitude=-64; go_south_east(&latitude,&longtitude);//傳遞變量的地址 printf("Avast! Now at:[%i,%i]\n",latitude,longtitude); return 0; }