C/指针

本页使用了标题或全文手工转换
维基教科书,自由的教学读本
< C

指标的定义[编辑]

  • 指标为一种变数,储存的内容是记忆体位址。
  • 指标的使用会因为目的型态不同而有些微的影响。

变数指标[编辑]

  • 指标的宣告:
 int *ptr;  /* 則  (int *) 為變數型態,ptr 為變數名稱 */
  • 取得记忆体位址:在变数前面使用 '&' 字元。
  • 指向记忆体位址:在变数前面使用 '*' 字元。
#include <stdio.h>
int main()
{
    int v = 5;
    int *ptr = &v;
    printf("%d\n", *ptr);
}

函式指标[编辑]

函式其实也可以是指标。

#include <stdio.h>
typedef void (*MyDelegate)(int i );
MyDelegate test1( int i ) 
{
    printf("%d\n", i );
}
MyDelegate test2( int i ) 
{
    printf("%d\n", i+1 );
}

int
mainint argc, char* argv[]
{
    MyDelegate function;
    function = (MyDelegate)test1;
    function( 21 );  /* 等同於呼叫 test1 */
    function = (MyDelegate)test2;
    function( 21 );  /* 等同於呼叫 test2 */
}