C語言中的成員訪問:普通變量與指針變量的區別與使用

C語言中的成員訪問

在C語言中,我們可以通過變量來訪問它們的成員。根據變量的類型,我們使用不同的成員訪問符:.->。本文將詳細介紹這兩個成員訪問符的使用。

目錄

  1. 普通變量的成員訪問
  2. 指針變量的成員訪問
  3. 示例代碼
  4. 總結

普通變量的成員訪問

在C語言中,我們可以定義一個結構體來表示一個對象或者一組數據。結構體中的成員可以是不同的數據類型,比如整數、浮點數、字符數組等。當我們創建一個結構體變量后,可以通過.來訪問它的成員。

struct Person 
{char name[20];int age;double score;
};int main() 
{struct Person p;strcpy(p.name, "Alice");p.age = 25;p.score = 95.5;printf("Name: %s\n", p.name);printf("Age: %d\n", p.age);printf("Score: %lf\n", p.score);return 0;
}

上述示例中,我們定義了一個名為Person的結構體,包含了三個成員:nameagescore。在main函數中,我們創建了一個Person類型的變量p,并通過strcpy和賦值來設置其成員的值。然后,我們通過.來訪問p的各個成員,并使用printf將它們打印出來。

指針變量的成員訪問

除了使用.來訪問結構體變量的成員,我們還可以使用指針變量來訪問結構體的成員。當我們聲明一個指向結構體的指針變量后,需要使用->來訪問結構體的成員。

struct Person 
{char name[20];int age;double score;
};int main() 
{struct Person p;struct Person* pp;pp = &p;strcpy(pp->name, "Bob");pp->age = 30;pp->score = 85.5;printf("Name: %s\n", pp->name);printf("Age: %d\n", pp->age);printf("Score: %lf\n", pp->score);return 0;
}

在上面的示例中,我們首先定義了一個指向Person類型的指針變量pp。然后,將pp指向p,并使用strcpy和賦值來設置p的成員的值。通過->,我們可以訪問pp所指向的結構體的各個成員,并使用printf將它們打印出來。

示例代碼

你可以在以下鏈接中找到本文中使用的示例代碼:C語言成員訪問示例代碼

總結

在C語言中,我們可以使用.來訪問普通變量的成員,使用->來訪問指針變量所指向的結構體的成員。這兩種成員訪問方式使得我們可以方便地操作結構體的數據。在編寫程序時,我們可以根據實際需求選擇合適的成員訪問符。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/215522.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/215522.shtml
英文地址,請注明出處:http://en.pswp.cn/news/215522.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深入探索 Spring Boot:簡化開發,加速部署的全方位利器

目錄 導言 1. 自動配置(Auto-Configuration) 2. 起步依賴(Starter Dependencies) 3. 嵌入式 Web 服務器 4. Actuator 5. 外部化配置 6. 簡化的安全性配置 7. Spring Boot CLI 8. Spring Boot DevTools 導言 在當今軟件開…

java基礎之抽象的概念(全網最詳細)

一.抽象的概念 如下圖所示: 如上圖所示,一個父類為圖形,計算圖形的面積方法,那么就會有疑問,計算哪個圖形的面積呢?所以這個計算圖形的面積方法就稱為抽象方法; 二.抽象方法和抽象類的格式 …

3、Kafka 線上集群部署方案怎么做?

文章目錄 1、操作系統的選擇1.1、I/O 模型的使用1.2、數據網絡傳輸效率1.3、社區支持度 2、磁盤的選擇3、磁盤容量的規劃3.1、舉例思考本問題:3.2、計算一下:3.3、規劃磁盤容量時你需要考慮下面這幾個元素: 4、帶寬規劃4.1、計算 總結 1、操作…

電商淘寶爬蟲API與淘寶官方開放平臺API的區別以及如何選擇適合自己的API接口

隨著數字化時代的到來,數據已經成為企業競爭力的重要因素。為了獲取數據,企業或個人常常需要使用API接口。常見的API接口包括爬蟲API和官方開放平臺API。本文將詳細介紹這兩種API接口的區別以及如何選擇適合自己的API接口。 一、爬蟲API與官方開放平臺A…

如何使用GaussDB創建外表(FOREIGN TABLE)

目錄 一、前言 二、創建外表的特點 二、GaussDB創建外表訪問外部數據庫表(示例) 1、創建外表 2、FAQ:CREATE USER MAPPING錯誤 三、GaussDB創建外表映射數據文件(示例) 1、創建數據文件 2、創建外表 3、FAQ&a…

Java之時間類2(JDK8新增)

一、Date類 &#xff08;一&#xff09;、ZoneId&#xff1a;時區 1、概述 ZoneId是Java 8中處理時區的類。它用于表示時區標識符&#xff0c;例如“America/New_York”或“Asia/Tokyo”。一共有600個時區。 2、常用方法: static Set<String> getAvailableZoneIds()獲…

C++基礎知識

目錄 前言&#xff1a; 命名空間 命名空間的定義 命名空間的使用 c輸入與輸出 缺省參數 函數重載 引用 引用的特性 常引用 引用的使用場景 引用做參數 引用做返回值 引用與指針的區別 內聯函數 內聯函數的特性 前言&#xff1a; C 語言是結構化和模塊化的語言&…

VS CODE 出錯 XHR failed

重新下載過去的版本&#xff0c;可能由于最近版本更新導致 Visual Studio Code September 2023

談談MYSQL主從復制原理

目錄 概述 要點binlog日志 主從復制過程 總結 概述 MySQL 主從復制是指數據可以從一個MySQL數據庫服務器主節點復制到一個或多個從節點。 MySQL 默認采用異步復制方式。從節點不用一直訪問主服務器來更新自己的數據&#xff0c;數據的更新可以在遠程連接上進行&#xff0…

Volatility3內存取證工具安裝及入門在Linux下的安裝教程

1-1. Volatility3簡介 Volatility 是一個完全開源的工具&#xff0c;用于從內存 (RAM) 樣本中提取數字工件。支持Windows&#xff0c;Linux&#xff0c;MaC&#xff0c;Android等多類型操作系統系統的內存取證。 針對競賽這塊&#xff08;CTF、技能大賽等&#xff09;基本上都…

websocket vue操作

let websocket: WebSocket; /** websocket測試 */ function connectWebsocket() {if (typeof WebSocket "undefined") {console.log("您的瀏覽器不支持WebSocket");return;}// let ip window.location.hostname ":8080";let ip "10.192…

瑞薩RZ/G2L核心板Linux Log目錄文件詳解

為了排除系統問題&#xff0c;監控系統健康狀況以及了解系統與應用程序的交互方式&#xff0c;我們需要了解各log文件的作用&#xff0c;以G2L中yocto文件系統為例&#xff0c;在系統/var/log/目錄下會存放記錄系統中各個部分的log文件作用如下&#xff1a; 1. 文件詳情 下圖…

Ubuntu系統部署Inis博客并使用內網穿透發布到公網隨時隨地遠程訪問

目錄 前言 推薦 1. Inis博客網站搭建 1.1. Inis博客網站下載和安裝 1.2 Inis博客網站測試 1.3 cpolar的安裝和注冊 2. 本地網頁發布 2.1 Cpolar臨時數據隧道 2.2 Cpolar穩定隧道&#xff08;云端設置&#xff09; 2.3.Cpolar穩定隧道&#xff08;本地設置&#xff09;…

鴻蒙原生應用/元服務開發-Stage模型能力接口(二)

ohos.app.ability.AbilityConstant (AbilityConstant)一、說明 AbilityConstant提供Ability相關的枚舉&#xff0c;包括設置初次啟動原因、上次退出原因、遷移結果、窗口類型等。本模塊首批接口從API version 9開始支持。后續版本的新增接口&#xff0c;采用上角標單獨標記接口…

matlab 最小二乘擬合平面(拉格朗日乘子法)

目錄 一、算法原理二、代碼實現三、結果展示本文由CSDN點云俠原創,原文鏈接。博客長期更新,爬蟲自重。 一、算法原理 設擬合出的平面方程為: a x + b y &#

Linux筆記之systemctl命令詳解

Linux筆記之systemctl命令詳解 code review! 文章目錄 Linux筆記之systemctl命令詳解systemctl restart docker 詳解 systemctl 是一個用于管理 systemd 服務的命令行工具。systemd 是一個用于啟動、停止和管理 Linux 系統中的進程的系統和服務管理器。下面是一些常見的 syst…

機器視覺系統選型-條形光源分類及應用場景

標準面光源 從平坦發光面照射漫射光 機械零件尺寸測量電子元件、IC的外形檢測邊緣缺陷檢測服裝紡織、食品包裝檢測 中孔面光源 從相機的同軸方向照射漫射光 金屬零件缺陷檢測金屬外殼檢測大面積電子元件的字符識別 平行面光源 照射平行度較高的漫射光玻璃瓶直徑測量螺釘牙輪…

Android studio 離線配置gradle

Gradle Distributions Gradle Distributions 查看gradle 文件夾下 gradle-wrapper.properties文件中的distributionUrl 版本號 然后在上邊網站下載對應需要的gradle對應版本 下載后復制到 gradle wrapper文件下&#xff0c;同時修改 distributionUrl 指向本地文件 然后同步就…

xtu oj 1233 Cycle Matrix

題目描述 給定N&#xff0c;輸出一個N*N的矩陣&#xff0c;矩陣為N層&#xff0c;每層是一個字符&#xff0c;從A到Z。 比如說N3,矩陣為 CCCCC CBBBC CBABC CBBBC CCCCC輸入 第一行是一個整數K&#xff08;K≤50&#xff09;,表示樣例數。 每個樣例占1行&#xff0c;為一個整…

647.回文子串

給你一個字符串 s &#xff0c;請你統計并返回這個字符串中 回文子串 的數目。 回文字符串 是正著讀和倒過來讀一樣的字符串。 子字符串 是字符串中的由連續字符組成的一個序列。 具有不同開始位置或結束位置的子串&#xff0c;即使是由相同的字符組成&#xff0c;也會被視作…