指針—學習c/c++的第一步(第七章)

字號:

第七章。指針和函數(shù)的關(guān)系
    可以把一個指針聲明成為一個指向函數(shù)的指針。 
    int fun1(char*,int); 
    int (*pfun1)(char*,int); 
    pfun1=fun1; 
    .... 
    .... 
    int a=(*pfun1)("abcdefg",7);//通過函數(shù)指針調(diào)用函數(shù)。
    可以把指針作為函數(shù)的形參。在函數(shù)調(diào)用語句中,可以用指針表達式來作為實參。
    例十三: 
    int fun(char*); 
    int a; 
    char str[]="abcdefghijklmn"; 
    a=fun(str); 
    ... 
    ... 
    int fun(char*s) 
    { 
    int num=0; 
    for(int i=0;i    { 
    num+=*s;s++; 
    } 
    return num; 
    } 
    這個例子中的函數(shù)fun統(tǒng)計一個字符串中各個字符的ASCII碼值之和。前面說了,數(shù)組的名字也是一個指針。在函數(shù)調(diào)用中,當把str作為實參傳遞給形參s后,實際是把str的值傳遞給了s,s所指向的地址就和str所指向的地址一致,但是str和s各自占用各自的存儲空間。在函數(shù)體內(nèi)對s進行自加1運算,并不意味著同時對str進行了自加1運算。