結構體怎么賦值_c語言學習之基礎知識點介紹:結構體的介紹

cea89fb4638a06f6f57ca098d47fe2f9.png

一、結構體的介紹

/*
語法:struct 結構體名{成員列表;};切記切記有分號!說明:成員列表就是指你要保存哪些類型的數據。注意:上面的語法只是定義一個新的類型,而這個類型叫做結構體類型。因為類型不能保存數據,所以我們要有結構體變量。
語法:struct 結構體名 變量名;
變量賦值的語法:變量名.成員名 = 數據;例: zs.age = 16;輸出結構體:注意:沒有任何格式化控制符能夠一次性輸出整個結構體我們必須一個成員一個成員的輸出結構體:可以用來保存多個不同類型的數據可以把生活中的一些東西,抽象成結構體
*/
//這里只是定義了一個結構體類型
struct person{float height; //身高float weight; //體重int age;  //年齡char gender;//性別  f代表女 female  m代表男char name[50]; //姓名
};int main(int argc, const char * argv[]) {struct person zs; //變量名:zs    類型:struct personzs.age = 16;zs.gender = 'm';zs.height = 189;zs.weight = 60;//zs.name = "張三";  這是錯誤的strcpy(zs.name, "張三");printf("姓名:%s  年齡%d  性別:%c  身高%.0fn",zs.name,zs.age,zs.gender,zs.height);return 0;
}

二、結構體的初始化

/*
初始化:1、先聲明,后賦值語法:struct  結構體名 ;變量名.成員名 = 數據; 例如:struct  UserInfo userInfo;userInfo.age = 17;2、在聲明的時候初始化a、語法:struct  結構體名  變量名 = {數據1,數據2,數據N};例如:struct  UserInfo userInfo = {1,17,"張三"};注意:這種方式必須按結構體定義的成員順序來賦值b、語法:struct  結構體名  變量名 = { .成員名1=數據1, .成員名2=數據2, .成員名N=數據N};例如:struct  UserInfo userInfo = {.userId = 1, .age = 17,.userName = "張三"};//一定要按照結構體中變量的順序來寫。3.先聲明,后一次性賦值struct  結構體名  變量名;變量名 = (struct 結構體名){ 數據1,數據2,數據N };例: struct UserInfo s1;s1 = (struct UserInfo){ 1, 17, "張三"};
*/
//先定義一個結構體struct  UserInfo{int userId;//編號int age;     //年齡char UserName[50];   //用戶名}
#include <string.h>
int main(int argc,const char * argv[]){struct  UserInfo userInfo;userInfo.age = 17;userInfo.userId= 1;     strcpy(userInfo.UserName,"張三");return 0;
}

三、結構體的其他使用

/*1.可以定義無限個結構體,用法跟之前說的用法完全一樣(只不過是多加了幾個類型而已)。2.作用域:結構體定義在哪,那么它的作用域就在它定義的位置,到它所在的作用域結束。3.在結構體定義的大括號后面寫標識符,那么這個標識符就是這個結構體的變量.它的作用域跟它定義結構體的作用域一樣 也可以同時定義多個變量,以 , 隔開。例:struct Person{int age;char name[50];}p3,p4,p5;4.結構體名可以省略,這樣就叫匿名結構體。例:struct{int age;char name[50];int test;}p2;p2就是這個匿名結構體類型的變量,可以在大括號后面寫多個變量名;5.結構體變量之間賦值都是值傳遞,比如說變量a賦值給變量b,b變了后,a不會改變。6.結構體作為函數的參數是值傳遞,也就是說函數內改了形參的值,實參不會改變7.結構體成員里面還可以定義別的結構體變量。//結構體里面某個成員又是結構體變量的三種賦值方式
例如:struct Person p1;p1.age = 16;p1.birthDay.year = 1990;p1.birthDay.month = 1;p1.birthDay.day = 1;struct Person p2 = { 16,"劉德華",{1994,1,1}};struct Person p3;p3.birthDay = (struct myDate){1994,1,1};*/struct myDate{int year;int month;int day;
};struct Person{int age;char name[50];//左邊是類型   右邊是成員名struct myDate birthDay;};struct Student{int stuNo;char name[50];
};struct Teacher{int age;int salary;char name[50];
};

四、typedef的使用

/*
typedef:給某個類型起別名。
語法:typedef   類型   別名 ;
例如:typedef  int  i;i num =10;printf("%d n",num);
*/typedef struct{int age;char name[50];
}Person; //類型struct{int age;char name[50];
}p; //這個p是變量//當前面加了typedef大括號后面的標識符才是類型,否則都是變量

嵌入式物聯網資料分享交流群:332650978 入群有全套學習視頻資料電子書免費贈送!

參考資料:

物聯網開發入門直播課 - 嵌入式/物聯網-C語言編程基礎?www.makeru.com.cnC語言_嵌入式?www.makeru.com.cn
b37be87c75917bb63beebd7784d5dbd0.png
嵌入式開發直播課 - 帶你提升C編程能力?www.makeru.com.cn
ffefe30167bd1c5db343d2595f2b9ae3.png
嵌入式底層開發 - 夯實C語言,從小白到大牛的進階之路!?www.makeru.com.cn
ffefe30167bd1c5db343d2595f2b9ae3.png

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

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

相關文章

php 生成excel空白,phpexcel庫在localhost上運行良好,但在服務器中生成空白的excel文件...

這是我的代碼,在本地主機上可以很好地使用數據庫中的數據生成一個excel文件,但在托管服務器中它會生成一個空白的excel文件&#xff1a;// Starting the PHPExcel library$this->load->library(PHPExcel);//$this->load->library(PHPExcel/IOFactory);$objPHPExcel…

阿里云Maven倉庫地址

<默認情況下配置多個mirror的情況下&#xff0c;只有第一個生效&#xff0c;只有當前一個mirror 無法連接的時候&#xff0c;才會去找后一個&#xff1b;而我們想要的效果是&#xff1a;當a.jar在第一個mirror中不存在的時候&#xff0c;maven會去第二個mirror中查詢下載&a…

python發短信腳本_python腳本發送短信

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技術人對外發布原創技術內容的最大平臺&…

國內遠程醫療市場快速增長

目前&#xff0c;遠程醫療技術已經從最初的電視監護、電話遠程診斷發展到利用高速網絡進行數字、圖像、語音的綜合傳輸&#xff0c;并且實現了實時的語音和高清晰圖像的交流&#xff0c;為現代醫學的應用提供了更廣闊的發展空間。 健康一體機 遠程醫療是指通過計算機技術、遙感…

php怎么使得字體滾動,滾動文字+字體特效代碼(全集)

收集了幾天&#xff0c;終于把滾動文字*字體特效差不多收集完了&#xff0c;這里與大家一同分享&#xff0c;期待您的博客越做越漂亮&#xff01;感謝您的光臨&#xff01;1.陰影滾動字循環滾動:歡迎光臨彌勒內院看門人博客&#xff0c;看門人歡迎您代碼:歡迎光臨彌勒內院看門人…

Eclipse集成svn后出現Failed to load JavaHL Library的解決辦法

在win10 64位上eclipsex64位 集成svn插件 在使用 Team-share project &#xff0c;選擇svn后&#xff0c;報了&#xff1a;Failed to load JavaHL Library錯誤 解決方法&#xff1a; winodws--perference--svn。設置如下圖

python寫進程_將數據作為后臺進程在Python中寫入磁盤

您可以像這樣嘗試using multiple processes&#xff1a;import multiprocessing as mpdef compute(j):# compute a bunch of datareturn datadef write(data):# write data to diskif __name__ __main__:pool mp.Pool()for j in xrange(200):pool.apply_async(compute, args(…

Unity快捷鍵

1 飛越模式 使用飛越模式通過第一人稱飛行來導航場景視圖&#xff0c;類似于在許多游戲中導航。 單擊并按住鼠標右鍵。 使用鼠標移動視圖&#xff0c;WASD鍵向左/右/前/后移動&#xff0c;Q和E鍵可上下移動。 按住Shift鍵可以更快地移動。 2 攝像機對準當前我Sceen的屏幕 Ctrl …

php如何打出的正方形行列,javascript實現輸出指定行數正方形圖案的方法

本文實例講述了javascript實現輸出指定行數正方形圖案的方法。分享給大家供大家參考。具體如下&#xff1a;javascript實現輸出指定行數的正方形圖案&#xff1a;點擊生成圖案&#xff0c;會有2個提示框&#xff0c;1&#xff0c;輸入圖案的組成字符&#xff0c;只能是1個字符哦…

eclipse的SVN插件設置忽略文件

windows--preference--Team-ignore resource 這里我新增了maven項目常不需要提交應該忽略的文件和文件夾 文件&#xff1a; .setting .project .classpath 文件夾&#xff1a; */target/* */target */settings */settings/*

風變python怎么樣_Python取代Excel?風變編程帶你了解如何更好地學Python!

當前最簡單、最流行的編程語言是什么&#xff1f;是Python。最近&#xff0c;谷歌公布的編程語言流行指數顯示&#xff0c;Python目前仍然是全球范圍內最受歡迎的技術語言。而得益于簡潔、易讀、易維護等特點&#xff0c;Python可廣泛運用于數據分析、人工智能、爬蟲、運維、測…

android 開發書簽大全,一站式的導航分享!

#一、描述 此資源是轉載而來&#xff0c;只為需要而用。 #二、書簽大全 ###Android大神 android-dev-cn Trinea 郭神 任玉剛 鴻洋 夏安明 徐醫生 daimajia stormzhang 農民伯伯 胡凱 郝錫強 張興業 老羅 Mr.Simple(源碼設計模式) 咪當系歐巴(非常有天賦的Coder) android_tutor…

php 正則匹配 %3e,在shell腳本中使用正則表達式

1)在Linuxshell腳本中使用正則表達式解析字符串的正確方法是什么?包括正則表達式功能的工具包括sed、grep、awk、perl、python等等。即使是更新版本的bash也具有regex功能。你所要做的就是查找關于如何使用它們的文檔。2)在這里使用SED是正確的嗎?可以,但不是必須的。3)這可以…

python排大小函數_python numpy 一些函數 大小排序和統計

排序大小函數import numpy as npsize 100a np.random.randint(0, 1000, sizesize)print(a)# 排序之后的前k個元素# 返回的值不一定是按照順序排好的# [ 5 0 15 22 32]# [ 0 5 15 22 32]print(np.partition(a, 3)[:5])print(np.sort(a)[:5])# 百分位數a np.abs(np.random.ran…

逸管家:把握不同行業生命周期,選擇正確商業模式

</P><P>  原標題&#xff1a;把握不同行業生命周期&#xff0c;選擇正確商業模式</P><P>  現今中小企業已進入理性商業模式選擇期&#xff0c;大量中小企業在拿到天使投資后進入融資瓶頸期。與此同時&#xff0c;“共享”一詞在各地出現&#xff0…

dubbo是如何“插入”到spring框架中的

原文鏈接&#xff1a;http://blog.csdn.net/achilles12345/article/details/41789527 ---------------------------------------------------------------------------------------------- 作為一個分布式服務治理框架&#xff0c;dubbo做的非常好&#xff0c;在業界使用很廣&…

oracle數據庫抽取到gp,Oracle遷移數據到Greenplum

端表結構SQL> select dbms_metadata.get_ddl(TABLE,TAB_ORA,ZWC) from dual;CREATE TABLE "ZWC"."TAB_ORA"( "ID" NUMBER,"OWNER" VARCHAR2(30),"NAME" VARCHAR2(128),CONSTRAINT "PK_ID" PRIMARY KEY (&qu…

postgresql 插入 時間戳_數據也玩躲貓貓?PostgreSQL中別人提交的數據,我為什么看不到?...

原創&#xff1a; Aken DB印象文章鏈接&#xff1a;https://mp.weixin.qq.com/s/OkJaWbzcXcJtzSCOFnqeXQ文章作為DB的學習體會&#xff0c;若有錯誤歡迎指導。一、環境介紹操作系統&#xff1a;CentOS Linux release 7.6.1810 (Core) DB版本&#xff1a;PostgreSQL -11.5 on x8…

VMware打卡虛擬機提示“此虛擬機可能已被復制或移動”

“我已移動虛擬機” //表示打開后的虛擬的網卡的mac地址不變&#xff0c;如果復制本地的&#xff0c;同時開機在一個vmnet可能造成沖突。 “我已復制虛擬機” //表示打開后的虛擬機的網卡的物理地址是新生成的&#xff0c;建議不懂的就選這個。 “取消” …

埋坑一: vue中子組件調用兄弟組件方法

小計&#xff1a; 開發中遇到子組件需要調用兄弟組件中的方法&#xff0c;如下寫個小demo記錄下心得&#xff0c;如果你有好的方法&#xff0c;請到評論區域指教 父組件示例代碼&#xff1a; 組件功能解析&#xff1a; 通過$emit獲取子組件事件&#xff0c;通過$ref調用子組件中…