首頁 > 後端開發 > C++ > 如何使用'cout”和'printf”在 C 中列印函數指標?

如何使用'cout”和'printf”在 C 中列印函數指標?

Mary-Kate Olsen
發布: 2024-12-27 22:33:11
原創
252 人瀏覽過

How Do I Print Function Pointers in C   Using `cout` and `printf`?

使用cout 和printf 列印函數指標

在C 中,可以使用cout 或printf 列印函數指針,但根據不同的情況具有不同的行為使用的格式說明符。

cout運算子

預設情況下,cout 將函數指標視為布林值,並為非空指標列印 1,為空指標列印 0。要列印實際位址,必須將其明確轉換為 void*:

cout << (void *)pf;
登入後複製

printf 函數

當將 printf 與 %p當格式說明符一起使用時,函數指針被視為指針,它們的位址被印在十六進位:

printf("%p", pf);
登入後複製

函數指標作為布林值

函數指標在C 中確實被視為布林值。這是由於布林轉換規則允許將指標強制轉換為 bool,其中非空指標的計算結果為 true,空指標的計算結果為 false。如果不考慮此行為,可能會出現意外情況。

成員函數指標

列印成員函數指標更為複雜,因為它們不是簡單的指標。然而,可以使用一個技巧來列印成員函數的位址:

cout << (void *)(*(int **)&pf);
登入後複製

這利用了成員函數的位址儲存在函數指標的第二個元素中的事實,並進行強制轉換使其作廢* 。

以上是如何使用'cout”和'printf”在 C 中列印函數指標?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板