指针的定义

编辑
  • 指针为一种变量,存储的内容是存储器地址。
  • 指针的使用会因为目的类型不同而有些微的影响。

变量指针

编辑
  • 指针的宣告:
 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 */
}