C語言,結構體,結構體大小,

? ? ? 1、結構體:

????????用于存儲不同數據類型的多個相關變量,從而形成一個具有獨立性的組合數據類型。

結構體的聲明:

struct 結構體類型名{

????? 數據類型 成員1;

????? 數據類型 成員2;

????? 數據類型 成員3;

………

}//注意此處的分號

聲明:創建了一種自定義的數據類型,這種類型叫做<struct 結構體類型名>è數據類型;

????? struct student(){

????? char name[32];

????? int age;

????? char sex;

????? double score;

}

struct student è 自定義一個數據類型

定義結構變量:

????? struct studet? 結構體變量名;

????? struct studet stu;

初始化:

????? struct student stu ={ “zhangsan”,18 ,’M’,88.8};

使用:

????? 結構體變量名.成員名:-->?數組名[下標]

????? stu.age -->18;

賦值:

????? 給結構體內容賦值時,只能一個一個成員的去賦值,

????? 但是可以相同類型的結構體之間可以直接賦值。

結構體指針:

????? struct student *p;

??????使用指針來進行獲取數據

????? (*p).sex? ?-->? ?’m’????? //基本不用

????? p->sex? ? -->???'m’????? //使用這個

/*===============================================
*   文件名稱:struct_KT.c
*   創 建 者:WM
*   創建日期:2023年08月15日
*   描    述:結構體基礎知識
================================================*/
#include <stdio.h>
#include<string.h>
#include <stdlib.h>
typedef struct student
{char name[32];int age;char sex;double score;
}stu,*pstu;int main(int argc, char *argv[])
{// stu s1={"zhangsan",18,'m',88.8},s2;//s2=s1;// strcpy(s2.name,"lisi");// s2.age=19;// s2.sex='w';// s2.score=29.0;stu s3;scanf("%s",s3.name);scanf("%d",&s3.age);//scanf("%*c%c",&s3.sex);//方法1、去除臟字字符'\r'回車getchar(); //方法2、去除臟字字符'\r'回車,放在輸入數據之前scanf("%c",&s3.sex);scanf("%lf",&s3.score);//結構體指針pstu p=&s3;printf("%s,%d,%c,%.2lf\n",s3.name,s3.age,s3.sex,s3.score);printf("%c\n",p->sex);pstu k=(struct student *)malloc(sizeof(stu));strcpy(k->name,"wangwu");puts(k->name);free(k);return 0;
} 

2、結構體大小:

  1. 使用結構體成員中最大的數據類型的長度來對齊。一個成員不會分到多個格子里。
  2. 從上到下開始對齊運算。只會放到自己數據類型大小的倍數的位置上。
  3. 數組相當于寫了一堆對應類型的變量。

??????

1111

1011

1000

所以為12

1111 1111

1111 1111

1111 1110

1100 0000

1111 1111

所以為40

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

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

相關文章

轉行軟件測試四個月學習,第一次面試經過分享

我是去年上半年從銷售行業轉行到測試的&#xff0c;從銷售公司辭職之后選擇去培訓班培訓軟件測試&#xff0c;經歷了四個月左右的培訓&#xff0c;在培訓班結課前兩周就開始投簡歷了&#xff0c;在結課的時候順利拿到了offer。在新的公司從事軟件測試工作已經將近半年有余&…

深信服數據中心管理系統 XXE漏洞復現

0x01 產品簡介 深信服數據中心管理系統DC為AC的外置數據中心&#xff0c;主要用于海量日志數據的異地擴展備份管理&#xff0c;多條件組合的高效查詢&#xff0c;統計和趨勢報表生成&#xff0c;設備運行狀態監控等功能。 0x02 漏洞概述 深信服數據中心管理系統DC存在XML外部實…

WPS-0DAY-20230809的分析和利用復現

WPS-0DAY-20230809的分析和初步復現 一、漏洞學習1、本地復現環境過程 2、代碼解析1.htmlexp.py 3、通過修改shellcode拿shell曲折的學習msf生成sc 二、疑點1、問題2、我的測試測試方法測試結果 一、漏洞學習 強調&#xff1a;以下內容僅供學習和測試&#xff0c;一切行為均在…

Keil開發STM32單片機項目的三種方式

STM32單片機相比51單片機&#xff0c;內部結構復雜很多&#xff0c;因此直接對底層寄存器編碼&#xff0c;相對復雜&#xff0c;這個需要我們了解芯片手冊&#xff0c;對于復雜項目&#xff0c;這些操作可能需要反復編寫&#xff0c;因此出現了標準庫的方式&#xff0c;對寄存器…

ES中倒排索引機制

在ES的倒排索引機制中有四個重要的名詞&#xff1a;Term、Term Dictionary、Term Index、Posting List。 Term&#xff08;詞條&#xff09;&#xff1a;詞條是索引里面最小的存儲和查詢單元。一段文本經過分析器分析以后就會輸出一串詞條。一般來說英文語境中詞條是一個單詞&a…

日期時間常用功能和函數

1 time 模塊 time 模塊提供了很多與時間相關的類和函數&#xff0c;下面我們介紹一些常用的。 1.1 struct_time 類 time 模塊的 struct_time 類代表一個時間對象&#xff0c;可以通過索引和屬性名訪問值。對應關系如下所示&#xff1a; 索引屬性值0tm_year&#xff08;年&a…

Docker容器與虛擬化技術:Docker資源控制、數據管理

目錄 一、理論 1.資源控制 2.Docker數據管理 二、實驗 1.Docker資源控制 2.Docker數據管理 三、問題 1.docker容器故障導致大量日志集滿&#xff0c;造成磁盤空間滿 2、當日志占滿之后如何處理 四、總結 一、理論 1.資源控制 (1) CPU 資源控制 cgroups&#xff0…

Java Vue Uniapp MES生產執行管理系統

本MES系統是一款B/S結構、通用的生產執行管理系統&#xff0c;功能強大&#xff01; 系統基于多年離散智造行業的業務經驗組建&#xff0c;主要目的是為國內離散制造業的中小企業提供一個專業化、通用性、低成本的MES系統解決方案。 聯系作者獲取

Linux(進程控制)

進程控制 進程創建fork函數初識fork函數返回值寫時拷貝fork常規用法fork調用失敗的原因 進程終止進程退出碼進程常見退出方法 進程等待進程等待必要性獲取子進程status進程等待的方法 阻塞等待與非阻塞等待阻塞等待非阻塞等待 進程替換替換原理替換函數函數解釋命名理解 做一個…

re學習(32)【綠城杯2021】babyvxworks(淺談花指令)

鏈接&#xff1a;https://pan.baidu.com/s/1msA5EY_7hoYGBEema7nWwA 提取碼&#xff1a;b9xf wp:首先找不到main函數&#xff0c;然后尋找特殊字符串&#xff0c; 交叉引用 反匯編 主函數在sub_3D9當中&#xff0c;但是IDA分析錯了 分析錯誤后&#xff0c;刪除函數 創建函數 操…

【Linux】多線程1——線程概念與線程控制

文章目錄 1. 線程概念什么是線程Linux中的線程線程的優點線程的缺點線程的獨立資源和共享資源 2. 線程控制Linux的pthread庫用戶級線程 &#x1f4dd; 個人主頁 &#xff1a;超人不會飛)&#x1f4d1; 本文收錄專欄&#xff1a;《Linux》&#x1f4ad; 如果本文對您有幫助&…

無腦入門pytorch系列(三)—— nn.Linear

本系列教程適用于沒有任何pytorch的同學&#xff08;簡單的python語法還是要的&#xff09;&#xff0c;從代碼的表層出發挖掘代碼的深層含義&#xff0c;理解具體的意思和內涵。pytorch的很多函數看著非常簡單&#xff0c;但是其中包含了很多內容&#xff0c;不了解其中的意思…

SpringBoot復習:(46)全局的bean懶加載是怎么實現的?

在application.properties中配置&#xff1a; spring.main.lazy-initializationtrue在運行SpringApplication的run方法時&#xff0c;代碼如下&#xff1a; 其中調用了prepareContext,prepareContext代碼如下&#xff1a; 當在配置文件中配置了spring.main.lazy-initializat…

JavaScript實現在線Excel的附件上傳與下載

摘要&#xff1a;本文由葡萄城技術團隊于CSDN原創并首發。轉載請注明出處&#xff1a;葡萄城官網&#xff0c;葡萄城為開發者提供專業的開發工具、解決方案和服務&#xff0c;賦能開發者。 前言 在本地使用Excel時&#xff0c;經常會有需要在Excel中添加一些附件文件的需求&am…

Clickhouse基于文件復制寫入

背景 目前clickhouse社區對于數據的寫入主要基于文件本地表、分布式表方式為主&#xff0c;但缺乏大批量快速寫入場景下的數據寫入方式&#xff0c;本文提供了一種基于clickhouse local 客戶端工具分布式處理hdfs數據表文件&#xff0c;并將clickhouse以文件復制的方式完成寫入…

解決并發沖突:Java實現MySQL數據鎖定策略

在并發環境下&#xff0c;多個線程同時對MySQL數據庫進行讀寫操作可能會導致數據沖突和不一致的問題。為了解決這些并發沖突&#xff0c;我們可以采用數據鎖定策略來保證數據的一致性和完整性。下面將介紹如何使用Java實現MySQL數據鎖定策略&#xff0c;以及相關的注意事項和最…

開源低代碼平臺Openblocks

網友 HankMeng 想看低代碼工具&#xff0c;正好手上有一個&#xff1b; 什么是 Openblocks &#xff1f; Openblocks 是一個開發人員友好的開源低代碼平臺&#xff0c;可在幾分鐘內構建內部應用程序。 傳統上&#xff0c;構建內部應用程序需要復雜的前端和后端交互&#xff0c;…

如何保證微信小游戲存檔不丟失?

引言 微信小游戲的興起為玩家提供了一個輕松便捷的娛樂方式&#xff0c;然而&#xff0c;存檔丟失問題一直以來都是開發者和玩家關注的焦點。為了確保玩家的游戲體驗和投入能夠得到充分的保障&#xff0c;開發團隊需要采取一系列方法來保障微信小游戲存檔不丟失。本文將介紹一…

學習筆記十五:基于YUM文件運行POD應用

基于YUM文件運行POD應用 通過資源清單文件創建第一個Pod更新資源清單文件查看pod是否創建成功查看pod的ip和pod調度到哪個節點上假如pod里有多個容器&#xff0c;進入到pod里的指定容器查看pod詳細信息查看pod具有哪些標簽&#xff1a;刪除pod通過kubectl run創建Pod Pod資源清…

word之插入尾注+快速回到剛才編輯的地方

1-插入尾注 在編輯文檔時&#xff0c;經常需要對一段話插入一段描述或者附件鏈接等&#xff0c;使用腳注經常因占用篇幅較大導致文檔頁面內容雜亂&#xff0c;這事可以使用快捷鍵 ControlaltD 即可在 整個行文的末尾插入尾注&#xff0c;這樣文章整體干凈整潔&#xff0c;需…