關於指向 C 中函式的指標

發布 科技 2024-04-10
6個回答
  1. 匿名使用者2024-02-07

    c,賦值操作要求左值與右值的型別相同。

    同一型別意味著變數本身屬於同一型別,它指向的物件屬於同一型別,並且兩者都是必不可少的。

    對於函式,返回值相同,引數型別和數量必須相同。

    除此之外,C 還規定必須定義變數才能使用!

    在您的示例中,1)返回值相同,引數型別和編號相同,因此編譯通過!

    2)返回值相同,引數型別和數量相同,所以編譯也可以通過!

    所以我不明白房東在編譯什麼樣的具體問題!

    函式未定義的問題是什麼?

    int cmp(const void*,const void*);這只是乙個陳述,而不是乙個定義! 您必須稍後定義它。

    此外,該問題與編譯器的掃瞄過程有關! 這有點複雜,但您可以大致了解編譯的工作原理!

    您可以嘗試調整 p=cmp; 語句的位置,比如main的內側或外側,看看有什麼區別。

  2. 匿名使用者2024-02-06

    以下是它的總體外觀:

    typedef int (*p)(int ,int );

    p max;

    p 是指標型別,相當於與 “int* a” 中的 “int*” 相同的效果。

    至於你的情況,我無法解釋,你應該發布錯誤程式碼。

  3. 匿名使用者2024-02-05

    1. 假設函式 void f(int b)。

    1)有乙個定義int a[15],並且呼叫f(a),傳遞第乙個位址。

    2)如果呼叫f(&a[1])等價於呼叫f(a+1),則傳遞位址,而不是整個陣列。

    其次,如第乙個所述,它仍然是位址。

    int arr[3][4];

    int (*a)[4] = arr;

    a 指向 arr[0],即第一行的位址。

    A+1 指向 arr[1],即第二行位址。

  4. 匿名使用者2024-02-04

    1.陣列都是傳遞的指標,因此它們是第乙個位址。

    2.它只是 a[1] 的位址。

    位址 4相對於維度數,如果它是一維的,則移動到第二個元素。

  5. 匿名使用者2024-02-03

    ...你怎麼看起來像你沒有寫全恩。

    當用作引數時,int* a 和 int a 是相同的,兩者都是陣列的第乙個位址。

    a[1] 傳遞陣列的第二個元素的位址。 只需對第二個元素的位址進行操作,而不會開啟另乙個空間。

    2 如果 int* a 是 A 的位址,則為 3 如果 a 是 int a[const]; A++ 獲取 &a[1] 的位址加上每個移動的型別大小的偏移量。

    順便說一句,BS不給積分。

  6. 匿名使用者2024-02-02

    指向函式的 C++ 指標定義為:

    返回型別。 *pointer name) (函式引數列表),例如。

    void*p)(int) 指向 void 的返回值

    引數為 int 型別的函式。

    如何定義指向類成員函式的函式指標? 使用成員函式指標。

    1)非靜態成員函式。

    定義方法:返回型別。

    類名:*指標名稱)(函式引數列表),例如 void

    A::*p)(int) 是指向類 A 中成員函式的函式指標。

    賦值方法:p=&a::函式名,而一般函式指標賦值為p=函式名,注意區別。 (成員函式的型別必須為 public)。

    呼叫方法:成員函式指標的呼叫必須通過類物件呼叫,a*p(int) 呼叫成員函式(型別為 public)。

    2)靜態成員函式。

    靜態成員函式的定義和用法與普通函式指標相同,只是將函式指標分配給非靜態成員的方法相同。

    這是因為靜態成員函式的指標型別與普通函式的指標型別相同。

相關回答
6個回答2024-04-10

兩者的 p 都是指標。

p=&t,將 p 指向的內容更改為 t 的位址,p=&t 是將指標更改為 t 的位址。 >>>More

9個回答2024-04-10

範圍。 你靜態字元 *chh;

static char *ch1;雖然兩個指標指向的位址沒有變化,但你有沒有想過它們指向的記憶體位址是否已經釋放,char chc[10]; 它是本地的,函式已經結束,生命週期已經結束,你正在嘗試使用 void times() 中的指標訪問它。 >>>More

11個回答2024-04-10

C 語言的有效變數名稱:

首先,它只能包含數字、字母和下劃線。 >>>More

8個回答2024-04-10

您可以使用函式指標,例如:

voidfunction(int >>>More

7個回答2024-04-10

指標可以說是C語言的一大特點,很多人一不小心就明白了,其實通過對比視覺方法就可以理解指標是什麼。 當C語言中的資料儲存沒有指標介入時,它是直接操作的,就像你去一棟樓找人,保安直接把人帶到你面前,C語言也訪問資料,但有時你就是不知道這個變數的名字, 也就是說,你不知道這個人叫什麼名字,還能找到資料或人嗎,也就是你可以用C語言中的指標來實現,這相當於你不知道這個人叫什麼名字,但你知道他住在那個房間裡(假設乙個房間住著乙個人), 保安仍然可以把人帶到你身邊,C也是如此,如果你指出資料在那個位置,CPU也可以為你找到資料,同樣的方式。而這樣做有什麼好處,就要說陣列了,你有一堆數字儲存在乙個連續的記憶體單元裡,和你那群朋友住在那棟樓裡類似,而且是挨著住的,你要把他們叫出來玩,就像你想把資料拿出來用一樣,那我就把登記字一一抖給保安,說是哪個人和那個人等等幫我找,C也可以通過這個方法實現,但是明顯太麻煩了,如果知道第乙個人住的房間號,再比如說 一共有10個人, 所以你只需要說幫我打下乙個號碼到人數(指他們住的連續房間號),哦,保安更容易做到,因為保安的名字可能不知道,但房間號必須知道, 在 C 語言中也是如此,你不需要 cal >>>More