在 C++ 中,p->name 和 p.name 的效果并不相同。它們用于不同的情況,取決于你是否通過指針訪問結構體成員。

p->name:這是指針訪問運算符(箭頭運算符)。當 p 是一個指向結構體的指針時,用 p->name 來訪問結構體的成員。

student* p = &stu; // p 是一個指向 student 類型的指針
cout << p->name << endl; // 通過指針 p 訪問 name 成員

p.name:這是點運算符。當 p 是一個結構體對象而不是指針時,用 p.name 來訪問結構體的成員。

student stu = { "zhangsan", 3, 60 }; // stu 是一個 student 類型的對象
cout << stu.name << endl; // 通過對象 stu 訪問 name 成員

具體的代碼片段,以便更清楚地理解:

#include<iostream>
#include<cstdio>
using namespace std;struct student {string name;int age;int score;
};int main() {student stu = { "zhangsan", 3, 60 };student* p = &stu; // p 是指向 stu 的指針// 使用指針訪問運算符 -> 來訪問成員cout << "name: " << p->name << " age: " << p->age << " score: " << p->score << endl;// 使用對象和點運算符 . 來訪問成員cout << "name: " << stu.name << " age: " << stu.age << " score: " << stu.score << endl;return 0;
}

運行上述代碼,輸出如下:

name: zhangsan age: 3 score: 60
name: zhangsan age: 3 score: 60

可以看到,通過指針 p 訪問結構體成員和直接通過結構體對象 stu 訪問成員,效果是一樣的,但它們的訪問方式不同:

  • 指針訪問p->namep->agep->score
  • 對象訪問stu.namestu.agestu.score

總結

  • 使用 -> 運算符用于通過指針訪問結構體的成員。
  • 使用 . 運算符用于通過結構體對象訪問其成員。

確保根據變量的類型(是指針還是對象)使用正確的運算符。

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

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

相關文章

基于ssm的蛋糕商城系統java項目jsp項目javaweb

文章目錄 蛋糕商城系統一、項目演示二、項目介紹三、系統部分功能截圖四、部分代碼展示五、底部獲取項目源碼&#xff08;9.9&#xffe5;帶走&#xff09; 蛋糕商城系統 一、項目演示 蛋糕商城管理系統 二、項目介紹 系統角色 : 管理員、用戶 一&#xff0c;管理員 管理員有…

PICO VR眼鏡定制播放器使用說明文檔videoplayerlib-ToB.apk

安裝高級定制播放器 高級定制播放器下載地址:https://download.csdn.net/download/ahphong/89360454 僅限用于PICO G2、G3、G4、NEO系列VR眼鏡上使用, 用途:用于第三方APP(開發者)調用定制播放器播放2D、3D、180、360全景視頻。 VR眼鏡系統請升級到最新版,可在官網下載,…

Mixed-precision計算原理(FP32+FP16)

原文&#xff1a; https://lightning.ai/pages/community/tutorial/accelerating-large-language-models-with-mixed-precision-techniques/ This approach allows for efficient training while maintaining the accuracy and stability of the neural network. In more det…

【排序算法】選擇排序以及需要注意的問題

選擇排序的基本思想&#xff1a;每一次從待排序的數據元素中選出最小&#xff08;或最大&#xff09;的一個元素&#xff0c;存放在序列的起始位置&#xff0c;直到全部待排序的數據元素排完 。 第一種實現方法&#xff1a; void SelectSort(int* arr, int n) {for (int j 0…

【kubernetes】探索k8s集群中金絲雀發布后續 + 聲明式資源管理yaml

目錄 一、K8S常見的發布方式 1.1藍綠發布 1.2灰度發布&#xff08;金絲雀發布&#xff09; 1.3滾動發布 二、金絲雀發布 三、聲明式管理方法 3.1YAML 語法格式 3.1.1查看 api 資源版本標簽 3.1.2查看資源簡寫 3.2YAML文件詳解 3.2.1Deployment.yaml 3.2.2Pod.yaml …

CSS3特殊屬性

特殊屬性 will-change will-change 屬性用于向瀏覽器提供提示,表明某個元素或其特定屬性在未來極有可能發生變化。這有助于瀏覽器提前優化相關渲染流程,提升動畫或其他動態效果的性能。 element {will-change: auto | <animateable-feature> [, <animateable-feat…

C++系列-C/C++內存管理方式

&#x1f308;個人主頁&#xff1a;羽晨同學 &#x1f4ab;個人格言:“成為自己未來的主人~” C/C內存分布 在這篇文章開始之前&#xff0c;我們先以一道題目來進行引入&#xff1a; int glovalvar 1; static int staticGlovalvar 1; void Test() {static int staticva…

Java進階學習筆記27——StringBuilder、StringBuffer

StringBuilder&#xff1a; StringBuilder代表可變字符串對象&#xff0c;相當于一個容器&#xff0c;它里面裝的字符串是可以改變的&#xff0c;就是用來操作字符串的。 好處&#xff1a; StringBuilder比String更適合做字符串的修改操作&#xff0c;效率會更高&#xff0c;…

在CSDN上成長的感悟,你的粉絲長啥樣?

文章目錄 一、寫作的初衷1. 記錄所學內容2.鞏固所學知識3.分享與幫助4.方便后續查找5.獲取激勵 二、你的粉絲長啥樣&#xff1f;1. 粉絲的特點與困惑2. 關于粉絲&#xff0c;細思極恐 三、繼續前行、堅持初心 在CSDN上寫博文&#xff0c;對于我來說&#xff0c;不僅僅是一個記錄…

OTA在線旅行社系統架構:連接世界的科技紐帶

隨著互聯網的快速發展和人們對旅行需求的不斷增長&#xff0c;OTA&#xff08;Online Travel Agency&#xff09;在線旅行社成為了現代旅行業中的重要一環。OTA系統架構的設計和實現將對旅行行業產生深遠影響。本文將探討OTA在線旅行社系統架構的重要性和關鍵組成部分&#xff…

異構圖上的連接預測一

這里寫目錄標題 異構圖&#xff1f;處理數據&#xff1a; 異構圖&#xff1f; 異構圖&#xff1a;就是指節點與邊類型不同的圖。 連接預測&#xff1a;目的是預測圖中兩個節點之間是否存在一條邊&#xff0c;或者是預測兩個節點之間&#xff0c;在未來可能形成的連接。 eg&…

Linux系統如何通過編譯方式安裝python3.11.3

1.切換到/data 目錄 cd /data 2.下載python源碼Python-3.11.3.tgz wget https://www.python.org/ftp/python/3.11.3/Python-3.11.3.tgz tar -xzf Python-3.11.0.tgz cd Python-3.11.3 3.配置python的安裝路徑 和 執行openssl的路徑 ./configure --prefix/usr/local/pyth…

Java筑基(三)

Java筑基&#xff08;三&#xff09; 一、final概念1、案例1&#xff1a;采用繼承&#xff1a;2、案例2&#xff1a;final修飾的類不可以被繼承&#xff1a;3、案例3&#xff1a;final修飾的類不能有子類&#xff0c;但是可以有父類4、final修飾構造方法5、final修飾普通方法6、…

頭歌GCC編程工具集第1關:實驗工具GCC與objdump的使用

任務要求 根據提示&#xff0c;在右側編輯器中顯示的bytes.c文件中的 Begin-End 之間補充代碼&#xff08;即設置一個數組的初始值&#xff09;&#xff0c;使其與如下顯示的main.c文件一起編譯、生成的程序在運行時輸出“SUCCESS”。 程序源文件main.c的內容如下&#xff08;務…

牛客前端面試高頻八股總結(1)(附文檔)

1.html語義化 要求使用具有語義的標簽&#xff1a;header footer article aside section nav 三點好處&#xff1a; &#xff08;1&#xff09;提高代碼可讀性&#xff0c;頁面內容結構化&#xff0c;更清晰 &#xff08;2&#xff09;無css時&#xff0c;時頁面呈現出良好…

滲透工具CobaltStrike工具的下載和安裝

一、CobalStrike簡介 Cobalt Strike(簡稱為CS)是一款基于java的滲透測試工具&#xff0c;專業的團隊作戰的滲透測試工具。CS使用了C/S架構&#xff0c;它分為客戶端(Client)和服務端(Server)&#xff0c;服務端只要一個&#xff0c;客戶端可有多個&#xff0c;多人連接服務端后…

Golang設計模式(四):觀察者模式

觀察者模式 什么是觀察者 觀察者模式(Observer Pattern)&#xff1a;定義對象之間的一種一對多依賴關系&#xff0c;使得每當一個對象狀態發生改變時&#xff0c;其相關依賴對象皆得到通知并被自動更新。觀察者模式的別名包括發布-訂閱&#xff08;Publish/Subscribe&#xf…

音視頻開發8 音視頻中SDL的使用,SDL 在windows上環境搭建,SDL 使用 以及 常用 API說明,show YUV and play PCM

1.SDL簡介 SDL&#xff08;Simple DirectMedia Layer&#xff09;&#xff0c;是一個跨平臺的C語言多媒體開發庫。 支持Windows、Mac OS X、Linux、iOS、Android 提供對音頻、鍵盤、鼠標、游戲操縱桿、圖形硬件的底層訪問 很多的視頻播放軟件、模擬器、受歡迎的游戲都在使用…

面試中算法(A星尋路算法)

一、問題需求&#xff1a; 迷宮尋路游戲中&#xff0c;有一些小怪物要攻擊主角&#xff0c;現在希望你給這些小怪物加上聰 明的AI (Artificial Intelligence&#xff0c;人工智能&#xff09;&#xff0c;讓它們可以自動繞過迷宮中的障礙物&#xff0c;尋找到主角的所在。 A星…

json web token及JWT學習與探索

JSON Web Token&#xff08;縮寫 JWT&#xff09;是目前最流行的跨域認證解決方案 作用&#xff1a; 主要是做鑒權用的登錄之后存儲用戶信息 生成得token(令牌)如下 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwiaWF0IjoxNjg3Njc0NDkyLCJleHAiOjE2ODc3NjA4OTJ9.Y6eFG…