指標的用途在於對記憶體進行操作,以下的數個範例,將示範如何運用指標來達到目的
範例1:
先定義一個變數a,再將指標p指向a的記憶體位址.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int *p;
int a=5;
p=&a;
printf("&a=%d \n",&a);
printf("p=%d \n",p);
system("PAUSE");
return 0;
}
範利2::
定義一個指標p,但不直接給予記憶體位址,而是透過另一個副程式,取得記憶體位址。
#include <stdio.h>
#include <stdlib.h>
int a=5;
void get_address(int **addr)
{
*addr=&a;
}
int main(int argc, char *argv[])
{
int *p;
get_address(&p);
printf("&a=%d \n",&a);
printf("p=%d \n",p);
system("PAUSE");
return 0;
}
範例3:
直接填一個記憶體位址給指標p.
宣告指標的目的就是要對記憶體位址做操作,所以指標取得記憶體位址的方法不是唯一的。
我認為第3個範例雖然簡單,但很值得去思考。
#include <stdio.h>
#include <stdlib.h>
int a=5;
void get_address(int **addr)
{
*addr=&a;
}
int main(int argc, char *argv[])
{
int *p;
p=4202496;
printf("&a=%d \n",&a);
printf("p=%d \n",p);
printf("*p=%d \n",*p);
system("PAUSE");
return 0;
}