《零基礎看得懂的C++入門教程 》——(9)結構體原來如此

一、學習目標

  1. 了解C++語言的結構體的使用方法
  2. 了解C++語言結構體的結構的賦值
  3. 了解多種C++語言結構體變量的賦值方法和取值方法

目錄

預備第一篇,使用軟件介紹在這一篇,C++與C使用的軟件是一樣的,查看這篇即可:《軟件介紹》
想了解編譯原理和學習方法點這篇,學習方法和一些原理C++與C都是相同的《脫離學習誤區》

《零基礎看得懂的C++入門教程 》——(1)第一個C++程序就讓你知其所以然
《零基礎看得懂的C++入門教程 》——(2)什么是數據類型、變量?一看便會
《零基礎看得懂的C++入門教程 》——(3)表達式花樣挺多鴨
《零基礎看得懂的C++入門教程 》——(4)條件判斷原來如此
《零基礎看得懂的C++入門教程 》——(5) 容我套個娃 循環
《零基礎看得懂的C++入門教程 》——(6)自己動手寫個函數
《零基礎看得懂的C++入門教程 》——(7)小數組玩起來
《零基礎看得懂的C++入門教程 》——(8)搞定二維數組與循環嵌套

推薦

歡迎大家關注公眾號,公眾號每滿1024及1024倍數則會抽獎贈送機械鍵盤一份+IT書籍2份喲~
在這里插入圖片描述

二、了解結構體的使用方法

2.1 什么是C++語言結構體
在學習C++語言結構體前我們需要知道C++語言結構體是什么東西,形式是如何的,它的核心的組成思想是什么。

結構體簡單的來說是一個數據的類型,跟int整型、char字符型類型一樣,都是一種數據類型,在此別糾結它具體是什么,畢竟還沒深入學,在此只要知道它也是數據類型即可。結構體是一種數據類型但它與int整型、char字符型數據不同之處是需要我們自己編寫它的一個數據結構(這個數據結構是單純意義上的數據組成)。結構體是有多個或其它數量的數據類型組成的一種結構,其它數量的數據類型可以是整形、字符型等。

由上所述我們可以知道,結構體是一個變量,但是這個變量需要我們自己去編寫它的數據構成,這些數據構成是一些數據類型的變量。

我們看一下結構體示例:

struct human{int age;char sex;char name;
} ;

結構體使用struct 進行聲明,struct 后接的一對花括號,花括號中編寫這個結構體所包含的變量有哪些,并且使用分號表示結構體內變量的結束;在struct之后花括號之前為結構體名,結構體名與變量名類似。

以上的結構體所包含的變量有整形變量age,字符變量sex以及字符變量name,名稱為human;結構體我們可以看為是一個類別,該類別的組成元素有哪些。

以上結構體名為human中文譯為人類,那么一個人有哪些屬性呢?首先有年齡是一個整數數據,所以我在結構體中編寫一個整數類型的變量age;人類還有性別,我在human結構體中使用sex表示說明并且也定義了一個char類型的變量name用于存儲人類的名稱代號。從以上所述可以很清楚的知道當前結構體human的一個組成。

注意:花括號末尾需要分號表示結束。
2.2 結構體的使用
在以上內容中重點強調了結構體是一個類型,那么一個類型的變量如何進行聲明創建?例如int類型定義一個變量a為 int a;,那么結構體就可以寫成 結構體名 變量;,這樣寫是錯的,必須在結構體名前添加一個 struct關鍵字,表示接下來我所聲明的變量為結構體: struct 結構體名 變量;。代碼示例為:

#include<iostream>int main(){struct human{int age;char sex;char name;} ;struct human xiaoming; 
}

以上示例中定義了一個名為human的結構體,隨后根據這個結構體創建了一個xiaoming的結構體變量。
創建完結構體變量后我們需要對這個結構體變量進行賦值,賦值使用點運算符“.”,可以將這個點當作“的”使用。例如我需要為xiaoming增加一個年齡,那么就可以使用xiaoming后接一個點,表示小明的什么元素要賦值多少,可以寫成:

xiaoming.age=10;

同樣,其它的元素都可以這樣去進行賦值,我們稱這些元素為成員變量。其它成員變量的賦值:

xiaoming.sex='T';
xiaoming.name='M';

在此我賦值性別為男,用T表示,小明的名字用M表示。
那賦值完畢后如何進行取值呢?取值的方式很簡單,也是使用點運算符:

xiaoming.age

我們賦值完畢后輸出內容查看一下是否成功:

#include<iostream>
using namespace std;
int main(){struct human{int age;char sex;char name;} ;struct human xiaoming; xiaoming.age=10;xiaoming.sex='T';xiaoming.name='M';cout<< " age 為:"<<xiaoming.age<<endl;cout<< " age 為:"<<xiaoming.sex<<endl;cout<< " age 為:"<<xiaoming.name<<endl;
}

運行結果如下:

結構體也可以直接在編寫的時候直接創建結構體變量:

struct human{int age;char sex;char name;} xiaoming;

以上代碼中直接在結構體末尾花括號之后,結束分號前創建了一個結構體變量,整體代碼:

#include<iostream>
using namespace std;
int main(){struct human{int age;char sex;char name;} xiaoming;xiaoming.age=10;xiaoming.sex='T';xiaoming.name='M';cout<< " age 為:"<<xiaoming.age<<endl;cout<< " sex為:"<<xiaoming.sex<<endl;cout<< " name為:"<<xiaoming.name<<endl;
}

運行結果均為一致,也可以創建多個結構體變量:

#include<iostream>
using namespace std;
int main(){struct human{int age;char sex;char name;} xiaoming,xiaohong;xiaoming.age=10;xiaoming.sex='T';xiaoming.name='M';xiaohong.age=11;xiaohong.sex='M';xiaohong.name='H';cout<< " age 為:"<<xiaohong.age<<endl;cout<< " age 為:"<<xiaohong.sex<<endl;cout<< " age 為:"<<xiaohong.name<<endl;
}

運行結果為:

也可以在直接創建結構體變量的時候賦值:

struct human{int age;char sex;char name;} xiaoming={10,'T','M'},xiaohong;

賦值在變量名后使用一個等于號,值使用一對花括號,花括號內編寫不同的值,并且用逗號進行分隔;也可以同時賦值2個結構體變量:

struct human{int age;char sex;char name;} xiaoming={10,'T','M'},xiaohong={1,'M','H'};

整體代碼為:

#include<iostream>
using namespace std;
int main(){struct human{int age;char sex;char name;} xiaoming={10,'T','M'},xiaohong={1,'M','H'};cout<< " age 為:"<<xiaoming.age<<endl;cout<< " sex 為:"<<xiaoming.sex<<endl;cout<< " name 為:"<<xiaoming.name<<endl;cout<< " age 為:"<<xiaohong.age<<endl;cout<< " sex 為:"<<xiaohong.sex<<endl;cout<< " name 為:"<<xiaohong.name<<endl;
}

運行結果為:

三、總結

  1. 了解C++語言的結構體的的結構是一組不同類型數據的組合
  2. 了解C++語言結構體的結構的賦值是使用點運算符對內的成員變量進行賦值
  3. 了解了多種結構體變量的賦值方法和取值方法,賦值可以在新建時賦值也可以在之后賦值,取值使用點運算符進行取值

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

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

相關文章

微信小程序python token驗證_微信小程序python 用戶認證

按流程圖來先通過wx.login()獲取code,再通過我們后臺配置的接口獲取openid和session_key// 登錄wx.login({success: res > {console.log(res)// 發送 res.code 到后臺換取 openId, sessionKey, unionIdwx.request({url: api.GET_OPENID, //data: {js_code: res.code},succes…

C#實用技巧之:將圖標打包進DLL并讀取

概述個人的項目界面有時候需要用到很多圖標&#xff0c;這些圖片可以建立一個文件夾單獨存放&#xff0c;但有時涉及到多臺設備部署的話&#xff0c;每臺設備都需要隨項目一起拷貝過去&#xff0c;如果忘記了界面顯示就會出問題&#xff0c;有沒有更好的辦法解決&#xff1f;有…

強制IE瀏覽器或WebBrowser控件使用指定版本顯示網頁

最近為了抓取淘寶的成交數據,用C#的WebBrowser控件開發了一個簡單的程序. 發現WebBrowser控件默認使用的版本是IE7的兼容模式.而淘寶的寶貝詳細頁居然對IE7的支持不是很好. 成交記錄無法顯示,而我本機安裝的是IE10,那么有沒有辦法使我的WebBrowser控件的使用的IE版本高點呢? 查…

【計算機圖形學】實驗:VB.net環境下的繪制貝賽爾(Bezier)自由曲線完整實驗操作步驟

一、實驗目的 熟練掌握在.net環境下繪制貝賽爾自由曲線。 二、實驗準備 學習生成貝賽爾自由曲線的基本算法,以及在.net環境下繪制貝賽爾自由曲線的基本方法(DrawBezier和DrawBeziers)。 三、實驗內容 在.net環境中繪制二次、三次貝賽爾曲線。 四、實驗過程及步驟 (包…

Git之撤銷add操作

1 問題 git add file或者git add folder錯了 2 解決辦法 git reset HEAD 如果后面什么都不跟的話 就是上一次add 里面的全部撤銷了 git reset HEAD XXX/XXX/XXX.java 就是對某個文件進行撤銷了 git reset HEAD XXX/XXX/XXX/. 就是對某個文件夾進行撤銷了

配置FTP服務2(vsftpd 配置虛擬賬號)

1. 安裝軟件yum -y install vsftpd* yum -y install pam* yum -y install db4*2. 建立虛擬賬號相關聯的系統賬號useradd virftp -s /sbin/nologin 3. 建立虛擬賬戶相關的文件touch /etc/vsftpd/vsftpd_login并把你要建立的用戶寫到里面&#xff0c;奇數行是用戶名&#xff…

《零基礎看得懂的C++入門教程 》——(10)面向對象

一、學習目標 了解C類是什么了解類對象與類型修飾一樣進行創建了解了類的屬性如何使用了解了類方法的使用方法 目錄 預備第一篇&#xff0c;使用軟件介紹在這一篇&#xff0c;C與C使用的軟件是一樣的&#xff0c;查看這篇即可&#xff1a;《軟件介紹》 想了解編譯原理和學習…

appinventor連接MySQL_appinventor如何連接sqlserver數據庫

java中使用jdbc連接sqlserver數據庫步驟&#xff1a;1。JDBC連接SQLServer的驅動安裝,前兩個是屬于數據庫軟件,正常安裝即可(注意數據庫登陸不要使用windows驗證)將JDBC解壓縮到任意位置,比如解壓到C盤programfiles下面,并在安裝目錄里找到sqljdbc。jar文件,得到其路徑開始配置…

淺談JSONP

這是我在13年初寫的文章&#xff0c;當時懵懵懂懂寫下了自己對JSONP的理解。 文章原文 博客 歡迎訂閱 提到JSONP&#xff0c;我當時在網上找了無數帖子也沒有看懂它。那些文章大同小異&#xff0c;都是講到JSONP原理以后就戛然而止&#xff0c;把我們這些初學者搞得云里霧里。所…

Asp.Net Core 7 preview 4 重磅新特性--限流

前言限流是應對流量暴增或某些用戶惡意攻擊等場景的重要手段之一&#xff0c;然而微軟官方從未支持這一重要特性&#xff0c;AspNetCoreRateLimit這一第三方庫限流庫一般作為首選使用&#xff0c;然而其配置參數過于繁多&#xff0c;對使用者造成較大的學習成本。令人高興的是&…

【計算機圖形學】實驗:C#.net環境下采用GDI+圖形特技處理案例教程

一、實驗目的 掌握在.net環境下對圖形特技的處理方法。 二、實驗準備 學習在.net環境下讀取圖像文件、改變顏色等基本知識。 三、實驗內容 在.net環境中實現對圖像的灰度化處理、柔化和銳化、底片濾鏡、淡入淡出以及浮雕、油畫和木刻等藝術效果。 四、實驗過程及步驟 (…

Windows之在終端打開當前目錄的命令

1 問題 Windows在終端打開當前目錄的命令 2 命令如下 1)、通過start命令 start . 2)、通過explorer命令 explorer .3 linux終端打開當前目錄命令如下 nautilus . 4 mac終端打開當前目錄命令如下 open .

孫鐘秀-《 操作系統教程 》(第4版)注釋(稿)

http://www.valleytalk.org/2014/12/30/%E5%AD%99%E9%92%9F%E7%A7%80-%E3%80%82%E3%80%8A-%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E6%95%99%E7%A8%8B-%E3%80%8B%EF%BC%88%E7%AC%AC4%E7%89%88%EF%BC%89%E6%B3%A8%E9%87%8A%EF%BC%88%E7%A8%BF/轉載于:https://www.cnblogs.com/zen…

Android中build target,minSdkVersion,targetSdkVersion,maxSdkVersion概念區分

如果開發的應用用戶較多&#xff0c;那么必須保證應用在多個版本不同的設備上能夠正確的運行。這就要求對各個版本比較熟悉&#xff0c;知道在什么版本中加入了什么新的功能或特性。但是Android的版本太多了&#xff0c;是個令人頭疼的問題。如果想了解Android的版本差異&#…

mysql交叉編譯 cmake_CMake交叉編譯配置

很多時候&#xff0c;我們在開發的時候是面對嵌入式平臺&#xff0c;因此由于資源的限制需要用到相關的交叉編譯。即在你host宿主機上要生成target目標機的程序。里面牽扯到相關頭文件的切換和編譯器的選擇以及環境變量的改變等&#xff0c;我今天僅僅簡單介紹下相關CMake在面對…

[python opencv 計算機視覺零基礎到實戰] 一 opencv的helloworld

前置條件 說明&#xff1a;本系列opencv實戰教程將從基礎到實戰&#xff0c;若只是簡單學習完python也可以通過該教程完成一般的機器學習編程&#xff1b;文中將會對很多python的基礎內容進行講解&#xff0c;但由于文章定位的原因將不會贅述過多的基礎內容&#xff0c;基礎內…

Android之用setColorFilter在ImageView上面覆蓋一層灰色的圖層

1 問題 在圖片上面覆蓋一層灰色的圖層 2 解決辦法 比如點擊圖片覆蓋黑色 imageView.setColorFilter(ContextCompat.getColor(context, R.color.picture_color_black_80), PorterDuff.Mode.SRC_ATOP); 然后點擊圖片還原回來 imageView.setColorFilter(ContextCompat.getCol…

【計算機圖形學】實驗:VB.net環境下的綜合繪圖與交互技術案例教程

一、實驗目的 掌握在.net環境下的繪圖軟件界面設計與交互技術。 二、實驗準備 學習在.net環境下的界面設計的一般原理與交互技術等基本知識。 三、實驗內容 將前7個實驗內容集成到一個界面下&#xff0c;如直線段、圓、矩形與曲線的繪制填充&#xff0c;以及對圖像的處理&…

IE8 兼容background-size的解決辦法

.bgpic { background-image:url(); background-size:cover; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src,sizingMethodscale); } 注意progid里面的src路徑是絕對路徑或是相對于頁面的路徑。? div class"bgpic"style"width:200px;height:1…

從頭開始敲代碼之《從BaseApplication/Activity開始》

轉載請注明出處王亟亟的大牛之路 其安易持&#xff0c;其未兆易謀&#xff1b;其脆易泮&#xff0c;其微易散。為之于未有&#xff0c;治之于未亂。合抱之木&#xff0c;生于毫末&#xff1b;九層之臺&#xff0c;起于壘土&#xff1b;千里之行&#xff0c;始于足下。為者敗之…