」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > C/C++ 指標宣告中的星號應該放在哪裡?

C/C++ 指標宣告中的星號應該放在哪裡?

發佈於2024-12-22
瀏覽:719

Where Should the Asterisk Go in C/C   Pointer Declarations?

指針:用星號放置進行聲明

在 C 和 C 中,指針聲明的風格各不相同,常常引起混亂。問題出現了:星號 (*) 應該放置在類型名稱還是變數名稱旁邊?

放置約定

兩個主要的放置約定很常見:

  • 類型相鄰: ] 星號位於型別旁name.

    someType* somePtr;
  • Variable-adjacent: 星號位於變數名稱旁。

    someType *somePtr;

意義與首選項

雖然兩個約定導致相同的功能,但首選位置取決於個人偏好和感知邏輯。

型別相鄰約定強調型別指標變數的型別,宣告「somePtr 的型別是指向someType 的指標。」

相反,變數鄰近約定強調所指向資料的類型,指出「somePtr所指向的資料類型是someType。」

選擇很重要?

編譯器不區分這兩種約定。然而,一些程式設計師認為特定的位置可以增強可讀性或清晰度。其他人將其視為一種風格問題,類似於縮排和大括號放置。

結論

最終,兩個放置約定之間的選擇是主觀的。雖然兩者都是有效且可互換的,但一些程式設計師可能會發現其中一種比另一種更符合邏輯或美觀。了解底層語義和偏好可以幫助您了解編碼風格並改善與其他開發人員的溝通。

最新教學 更多>
  • 我們如何在數位環境中有效實作髒話過濾器?
    我們如何在數位環境中有效實作髒話過濾器?
    實施有效的髒話過濾器簡介:在許多數位環境中,有必要過濾掉攻擊性或不良內容來自使用者輸入的語言。本文討論如何實現強大的髒話過濾器。 淫穢過濾器:一個微妙的問題:承認髒話過濾器的複雜性非常重要。雖然它們在某些情況下很有用,但它們經常面臨限制並可能產生意想不到的後果。最終,人工審核仍然是準確內容審核的最可...
    程式設計 發佈於2024-12-22
  • 如何在 PHP 中組合兩個關聯數組,同時保留唯一 ID 並處理重複名稱?
    如何在 PHP 中組合兩個關聯數組,同時保留唯一 ID 並處理重複名稱?
    在 PHP 中組合關聯數組在 PHP 中,將兩個關聯數組組合成一個數組是常見任務。考慮以下請求:問題描述:提供的代碼定義了兩個關聯數組,$array1 和 $array2。目標是建立一個新陣列 $array3,它合併兩個陣列中的所有鍵值對。 此外,提供的陣列具有唯一的 ID,而名稱可能重疊。要求是建...
    程式設計 發佈於2024-12-22
  • 如何最佳化具有多個子句的資料庫 LIKE 查詢的索引選擇?
    如何最佳化具有多個子句的資料庫 LIKE 查詢的索引選擇?
    優化LIKE 查詢的索引選擇當涉及LIKE 子句時,資料庫效能會受到顯著影響,因為傳統索引無法有效支援通配符搜尋。這在具有多個子句和運算子的查詢中尤其明顯。 在提供的查詢中,您有一個包含 LIKE、OR 和 NOT IN 條件的複雜表達式。要確定最佳索引,請考慮以下因素:LIKE 運算子如果搜尋模式...
    程式設計 發佈於2024-12-22
  • 外部 CSS 可以包含在特定的 div 元素中嗎?
    外部 CSS 可以包含在特定的 div 元素中嗎?
    外部 CSS 可以限制為特定元素嗎? 追求創建一個模仿 iPhone 行為和外觀的行動模擬器僅使用客戶端程式碼,開發人員面臨挑戰。用於應用程式的外部 CSS 檔案覆蓋了模擬器本身的 CSS 樣式。 那麼,是否可以將外部 CSS 檔案的效果限制在特定 內的元素? 作用域樣式根據 CSS-Trick...
    程式設計 發佈於2024-12-22
  • 大批
    大批
    方法是可以在物件上呼叫的 fns 數組是對象,因此它們在 JS 中也有方法。 slice(begin):將陣列的一部分提取到新數組中,而不改變原始數組。 let arr = ['a','b','c','d','e']; // Usecase: Extract till index ...
    程式設計 發佈於2024-12-22
  • Bootstrap 4 Beta 中的列偏移發生了什麼事?
    Bootstrap 4 Beta 中的列偏移發生了什麼事?
    Bootstrap 4 Beta:列偏移的刪除和恢復Bootstrap 4 在其Beta 1 版本中引入了重大更改柱子偏移了。然而,隨著 Beta 2 的後續發布,這些變化已經逆轉。 從 offset-md-* 到 ml-auto在 Bootstrap 4 Beta 1 中, offset-md-*...
    程式設計 發佈於2024-12-22
  • 如何將 C++11 `constexpr` 陣列從 0 初始化為 N?
    如何將 C++11 `constexpr` 陣列從 0 初始化為 N?
    在C 11 中初始化從0 到N 的Constexpr 數組在C 11 中,創建一個從0 到指定整數n 的constexpr 數組需要更多一點比後來的C 版本更努力。實作方法如下:使用 Constexpr 建構子與迴圈:#include <iostream> template<int...
    程式設計 發佈於2024-12-22
  • HTML 格式標籤
    HTML 格式標籤
    HTML 格式化元素 **HTML Formatting is a process of formatting text for better look and feel. HTML provides us ability to format text without us...
    程式設計 發佈於2024-12-22
  • Pandas 中的「skiprows」如何知道是否要跳過第一行或索引為 1 的行?
    Pandas 中的「skiprows」如何知道是否要跳過第一行或索引為 1 的行?
    使用Pandas 導入CSV 時跳過行使用Pandas 導入CSV 資料時,通常需要跳過不需要的行包含在您的分析中。然而,圍繞skiprows參數的歧義可能會令人困惑。 skiprows的語法如下:skiprows : list-like or integer Row numbers to skip...
    程式設計 發佈於2024-12-22
  • 在 Go 中使用 WebSocket 進行即時通信
    在 Go 中使用 WebSocket 進行即時通信
    构建需要实时更新的应用程序(例如聊天应用程序、实时通知或协作工具)需要一种比传统 HTTP 更快、更具交互性的通信方法。这就是 WebSockets 发挥作用的地方!今天,我们将探讨如何在 Go 中使用 WebSocket,以便您可以向应用程序添加实时功能。 在这篇文章中,我们将介绍: WebSoc...
    程式設計 發佈於2024-12-22
  • 「this」在 JavaScript 類別方法中的行為如何?
    「this」在 JavaScript 類別方法中的行為如何?
    理解JavaScript 中類別方法中「this」的行為在JavaScript 中,「this」的概念對於理解方法在類別定義中的操作方式至關重要。為了深入研究這個主題,我們來分析一下「this」指的是呼叫者類別而不是呼叫類別方法時所建立的物件的語句。 呼叫模式與「this」綁定中JavaScript...
    程式設計 發佈於2024-12-22
  • 如何正確連接 PHP 變數和字串文字?
    如何正確連接 PHP 變數和字串文字?
    混合 PHP 變數和字串文字在 PHP 中,混合變數和字串文字有時會帶來挑戰。考慮這樣的場景,您將一個名為 $test 的變數指派給值“cheese”,並旨在將其與“y”連接以獲得“cheesey”。雖然使用點運算子 ($test . 'y') 附加 'y' 有效,但...
    程式設計 發佈於2024-12-22
  • 到`notify_one()`:鎖定還是不鎖定?
    到`notify_one()`:鎖定還是不鎖定?
    揭開條件背後的秘密:notify_one()加鎖或不加鎖問題: ]為了確保高效率的線程協調,std::condition_variables發揮關鍵作用。然而,在呼叫notify_one()之前取得鎖的必要性存在不確定性:它是強制性的,還是可選的做法? 解開謎團:答案很明確:在呼叫notify_on...
    程式設計 發佈於2024-12-22
  • 如何使用類型特徵來確定類型是 STL 容器還是向量?
    如何使用類型特徵來確定類型是 STL 容器還是向量?
    檢測具有類型特徵的STL 結構:is_container 和is_vector 指南簡介特徵提供了一種在編譯時查詢類型的強大機制。這使程式設計師能夠編寫高度優化且靈活的程式碼。一個常見的用例是檢測 STL 結構,例如向量、集合和映射。 定義 is_vector要確定型別是否表示向量,我們可以使用Bo...
    程式設計 發佈於2024-12-22
  • 如何在 JavaScript 中實現真正的「睡眠」功能?
    如何在 JavaScript 中實現真正的「睡眠」功能?
    在 JavaScript 中尋找真正的睡眠:時間操縱的演變在程式設計領域,引入人為延遲的追求經常被忽視。依賴「睡眠」的概念。對於 JavaScript,模擬此功能的追求催生了多種方法。一個這樣的解決方案,pausecomp 函數,採用基本的方法來模擬睡眠。然而,隨著技術的進步,可用的解決方案也不斷進...
    程式設計 發佈於2024-12-22

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3