結構體的(.)操作符和(->)操作符區別

来源:https://www.cnblogs.com/zzao/archive/2023/03/06/17181392.html
-Advertisement-
Play Games

0. RSocket 簡介 採用二進位點對點數據傳輸,主要應用於分散式架構之中,是一種基於Reactive Stream規範標準實現的新的通信協議。 參考阿裡雲開發者社區的介紹 相關文檔和資料: RSocket By Example rsocket-java 原生庫例子 Spring RSocket ...


一、結構體的 . 操作符
二、結構體的 -> 操作符
三、點操作符的優先性和結合性

一、結構體的 .操作符

1.結構體成員的直接訪問:結構體變數的成員是通過操作符 . 訪問的。

二、結構體的->操作符

1.結構體成員的間接訪問:當我們擁有一個 指向結構體的指針 ,我們訪問這個結構的成員的方式是 對指針執行間接訪問操作
然後再通過 點操作符 訪問其成員。但是 點操作符 的優先順序大於 間接訪問操作符,因此需要使用括弧,確保間接訪問先進行。
即訪問指向結構體的指針需要通過間接訪問來進行

例子:

struct complex
{  float f;};
void func(struct conmplex* cp);

函數可以使用如下表達式來進行訪問 f
(* cp).f ———— 即通過此方式來進行訪問結構體中的成員f

對指針進行 間接訪問 將訪問結構體,再用點操作符訪問其成員。
由於該概念不是很方便,於是C語言提供了一個更為方便的操作符來完成這項工作———— ->操作符(也成箭頭操作符)
和點操作符一樣,箭頭操作符接收兩個操作數,但左操作數必須是一個指向結構體的指針
cp->f 等同於 (* cp).fs

三.點操作符的優先性和結合性:

從下表中我們可以看出其優先性是和[]相同的,結合性是從左到右的。

 struct complex{
   struct simple s;
   struct simple sa[10];
 };

於是當如下使用該操作符時:
(comp.s).a 等同於 comp.s.a
((comp.sa)[4]).c 等同於 cmp.sa[4].c


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 功能介紹 平臺採用B/S結構,後端採用主流的Python語言進行開發,前端採用主流的Vue.js進行開發。 整個平臺包括前臺和後臺兩個部分。 前臺功能包括:首頁、圖書詳情頁、用戶中心模塊。 後臺功能包括:總覽、借閱管理、圖書管理、分類管理、標簽管理、評論管理、用戶管理、運營管理、日誌管理、系統信息模 ...
  • Canvas var canvas = document.querySelector('.myCanvas'); var width = canvas.width = window.innerWidth; var height = canvas.height = window.innerHeight ...
  • 離職在家 閑來無事看最近ChatGPT很火 花了一天時間 用Uniapp寫了一個小程式端的ChatGPT,實在是看不慣~ 一大堆利用ChatGPT收費的應用(小程式) 整個開源的玩玩 另外主要是自己本身是後端開發人員~ 剛好用uniapp實踐一下小程式開發 先看看主頁面效果圖吧 演示視頻-> 做一個 ...
  • 前言 用數據生成CAD圖,一般採用的ObjectArx對CAD二次開發完成。ObjectARX是AutoDesk公司針對AutoCAD平臺上的二次開發而推出的一個開發軟體包,它提供了以C++為基礎的面向對象的開發環境及應用程式介面,能訪問和創建AutoCAD圖形資料庫。而由於現在懂C++的人少,很多 ...
  • 這篇文章主要描述如何進行消息隊列產品選型,包括產品選型需要考慮的因素、三種比較流行的消息隊列產品的優缺點以及如何根據我們的使用場景選擇合適的消息隊列產品。 ...
  • OneAPM 摘要:此篇文章主要介紹Java8 Lambda 表達式產生的背景和用法,以及 Lambda 表達式與匿名類的不同等。本文系OneAPM工程師編譯整理。 Java是一流的面向對象語言,除了部分簡單數據類型,Java 中的一切都是對象,即使數組也是一種對象,每個類創建的實例也是對象。在 J ...
  • 在企業的商業活動中,訂單是指交易雙方的產品或服務交易意向。交易下單負責創建這個交易雙方的產品或服務交易意向,有了這個意向後,買方可以付款,賣方可以發貨。 在電商場景下,買賣雙方沒有面對面交易,許多情況下需要通過超時處理自動關閉訂單 ...
  • 1. 編譯閾值 1.1. 一旦代碼執行到一定次數,就達到了它的編譯閾值,編譯器就會認為它有足夠的信息來編譯代碼 1.2. 在當前的JVM中,優化閾值的意義不大 1.2.1. 從JDK 7以及更早期遺留下來的 1.3. -XX:CompileThreshold=N 1.3.1. 當禁用分層編譯時有效 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...