指標的用途在於對記憶體進行操作,以下的數個範例,將示範如何運用指標來達到目的

 

 

範例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;

}

test   

 

 

範利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;

}

 ex2    

 

 

範例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;

}

 

 ex3  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 matt 的頭像
    matt

    My的部落格

    matt 發表在 痞客邦 留言(0) 人氣()