第22節 C語言結構體之結構體巢狀、結構體指標與結構體陣列的程式碼實現
結構體
#include <stdio.h>
//第一步
struct Student
{
//學號
int no;
//姓名
char name[20];
//性別
char sex[10];
//成績
double score;
};
int main(void)
{
//2.宣告結構體型別的變數
struct Student rui = {2013001,”銳哥","男",98.5};
//rui才分配了記憶體空間
//如何取訪問結構體變數中的成員變數 "."
//3.動態的賦值 變數.成會員變數名;
printf("請輸入學生學號:如 2013001\n");
scanf(“%d”,&rui.no);
printf("請輸入學生姓名:如 銳哥\n");
scanf("%s",rui.name);
printf("請輸入學生性別:如 男\n");
scanf("%s",rui.sex);
printf("請輸入學生成績:如 98.5\n");
scanf("%lf",&rui.score);
//輸出
printf("----------輸出---------\n");
printf("學號:%d\n”,rui.no);
printf("姓名:%s\n”,rui.name);
printf("性別:%s\n”,rui.sex);
printf("成績:%.2lf\n",rui.score);
return 0;
}
結構體巢狀
#include <stdio.h> //結構體的巢狀 //結構體型別的變數做另一個結構體的成員變數 struct Birthday { int y; int m; int d; }; struct Student { int no; char name[20]; int age;//年齡 struct Birthday birth;//生日 }; int main(void) { struct Student rui = {1306001,"銳哥",22, {1990,1,1}}; printf("學號:%d\n",rui.no); printf("%d年 -%d月 -%d日\n",rui.birth.y ,rui.birth.m, rui.birth.d); return 0; }
結構體陣列
#include <stdio.h> //要有一個結構體型別 struct Student { int no; char name[20]; };//沒寫分號 int main(void) { //2.宣告一個結構體陣列 struct Student stu[5] = {0}; //就能夠儲存5個學員的資訊 //迴圈給結構體陣列中得資料賦值 for(int i=0;i<5;i++) { printf("學生的學號:\n"); scanf("%d",&stu[i].no); printf("學生的姓名:\n"); scanf("%s",stu[i].name); } //取值 遍歷結構體陣列 printf("--------輸出--------\n"); for(int j=0;j<5;j++) { printf("學生的學號:"); printf("%d\n",stu[j].no); printf("學生的姓名:"); printf("%s\n",stu[j].name); } return 0; }
結構體指標
#include <stdio.h>
//第一步
struct Student
{
//學號
int no;
//姓名
char name[20];
//性別
char sex[10];
//成績
double score;
};//不要丟分號
int main(void)
{
//2.宣告結構體型別的變數
struct Student rui = {2013001,”銳哥","男",98.5};
//rui才分配了記憶體空間
//如何取訪問結構體變數中的成員變數 "."
//結構體型別的指標變數 指向 結構體變數
struct Student * point = &rui;
//3.動態的賦值 變數.成會員變數名;
printf("請輸入學生學號:如 2013001\n");
scanf("%d",&point->no);
printf("請輸入學生姓名:如 銳哥\n");
scanf("%s",point->name);
printf("請輸入學生性別:如 男\n");
scanf("%s",point->sex);
printf("請輸入學生成績:如 98.5\n");
scanf("%lf",&point->score);
//輸出
printf("----------輸出---------\n");
printf("學號:%d\n",point->no);
printf("姓名:%s\n",point->name);
printf("性別:%s\n",point->sex);
printf("成績:%.2lf\n",point->score);
return 0;
}
相關推薦
第22節 C語言結構體之結構體巢狀、結構體指標與結構體陣列的程式碼實現
結構體 #include <stdio.h> //第一步 struct Student { //學號 int no; //姓名 char name[20]; //性別 char
C語言中三種迴圈的巢狀和比較
1、迴圈的巢狀 一個迴圈體內又包含另一個完整的迴圈結構,稱為迴圈的巢狀。內嵌的迴圈中還可以巢狀迴圈,這就是多層迴圈。各種語言中關於迴圈的巢狀的概念都是一樣的。 C語言中3種迴圈(while迴圈、do…while迴圈和for迴圈)可以互相巢狀。例如,下面幾種都是合法的形式: (1)wh
C語言簡單入門之結構體和連結串列
C語言的連結串列也是一個很重要很難啃的骨頭,我是這麼覺得的! 以下只是個人對連結串列的總結和記錄方便日後複習所用,如有錯誤,請留言狠批,謝謝! 先說下連結串列的簡單實現: 如上圖,我們定義一個結構體: 1,2,3,4,5是結構體資料。a,b,c,d,e則是指標變
C語言知識點學習之結構體成員變數後加冒號
typedef struct xx { unsigned int a:2; unsigned int b:3; }Xx; //“unsigned int a:2;“中後面的":2"表示成員a只佔倆個位,而不是我們傳統認為的佔 //4個位元組這樣整個結構體大小就為4個位元組而不是8
c# 第9節 數據類型之值類型
font post http 浮點 style 數據類型 clas 現象 什麽 本節內容: 1:數據類型是什麽 1:數據類型是什麽 2:數據類型--值類型 3:值類型和引用類型的區分 畫圖現象: 3:值類型的種類
c# 第9節 數據類型之引用類型
類型 數據 分享 bubuko 賦值 OS http pos 字符 本節內容: 1:數據類型之引用類型 2:字符串要註意的兩點: 1:數據類型之引用類型 實例: 2:字符串要註意的兩點: 對變量進行重新賦值:其原本的字符串並沒有銷毀
c語言——線性表之順序結構
#include <stdio.h> #include <stdlib.h> #include <conio.h> //線性表——順序儲存 #define LIST_INIT_SIZE 10 #define LISTINCREMENT 10 #define ERR
第三講 微控制器C語言之12864液晶顯示
上一講我們探索了12864的文字模式,這一講我們來看看繪圖模式。上一講中我們給出了繪圖模式的點陣圖(見下圖),是由512組每組16個點構成的點陣。螢幕分為上下兩半,其中每一半佔256組;上半部分X軸方向(0-7),Y軸方向(0-31);下半部分X軸方向(8-15),Y軸方向
C語言:Struct之結構陣列以及結構的巢狀
一、結構陣列為什麼要使用結構陣列?舉個例子來說,假如我們定義了一個結構體book,顯然每一本書都可以用一個book型別的結構體來描述。要描述兩本書就需要用兩個這樣的結構變數,以此類推,如果我們要處理10本,100本,1000本...我們難道要一個一個定義嗎?我們想到陣列這種資
資料結構(C語言)學習之路(1)——緒論
小白學習資料結構,從基礎知識開始整理起。 1.資料結構是什麼? 2.資料結構在哪裡用? 3.資料結構怎麼用? 小白在開始學習資料結構,提出了這三個問題,希望到學習完成之後可以解決這三個問題。 小白從《大話資料結構》這本書開始學習。 基本概念: 資
《PTA——C語言原始碼》之第1008題
題目介紹 一個數組A中存有N(N>0)個整數,在不允許使用另外陣列的前提下,將每個整數迴圈向右移M(M>=0)個位置,即將A中的資料由(A~0~ A~1~……A~N-1~)變換為(A~N-M~ …… A~N-1~ A~0~ A~1~……A
C語言程式設計入門之--第三章編寫第一個C語言程式
導讀:一般學一門計算機語言的第一堂上機課(“上機”顧名思義,上計算機,機你太美),就是往螢幕輸出“hello world”,本章也不例外。 1.1 Hello,World! 這一節和讀者一起來編寫第一段C語言程式,過程
C語言程式設計入門之--第四章C語言基本資料型別
導讀:C語言程式中經常涉及一些數學計算,所以要熟悉其基本的資料型別。資料型別學習起來比較枯燥,不過結合之前的記憶體概念,以及本節的位元組概念,相信資料型別也就不難理解了。本章從二進位制的基本概念開始,然後介紹機器語言通用的計算單位位元組,最後再介紹C語言中基本的資料型別及其基本概念。 &
C語言程式設計入門之--第五章C語言基本運算和表示式-part1
導讀:程式要完成高階功能,首先要能夠做到基本的加減乘除。本章從程式中變數的概念開始,結合之前學的輸出函式和新介紹的輸入函式製作簡單人機互動程式,然後講解最基礎的加減法運算,自制簡單計算器程式練手。 5.1 變數 5.1.1 變數宣告定義與賦值表示式 上一章講了資料型別,資料型別要和變數結合在一起
C語言程式設計入門之--第五章C語言基本運算和表示式-part2
5.1.4 再來一個C庫函式getchar吸收回車鍵 回車鍵也是一個字元,在使用scanf的時候,輸入完畢要按下回車鍵,這時候回車鍵也會被輸入到stdin流中,會搞亂我們的程式。 注意:stdin是輸入流,stdout是輸出流,這兩個流就是在記憶體中流進流出的資料,根據流向不同命名也不同。 比如以
C語言程式設計入門之--第五章C語言基本運算和表示式-part3
5.3 挑幾個運算子來講 常用的運算子除了加減乘除(+-*/)外,還有如下: 注意:以下運算子之間用逗號隔開,C語言中也有逗號運算子,這裡不講逗號運算子。 1. 賦值運算子 =,+=,*= 2. 一元運算子 +
C語言數組之冒泡排序+折半查找法(二分查找)
不存在 次數 存在 是否 .com int count 結束 如果 冒泡排序算法 1 int num[5]; 2 int i; 3 //循環接收用戶輸入的元素 4 for(i=0;i<5;i++){ 5 pr
C語言的陷阱之typedef
c語言的陷阱之typedeftypedef是一個關鍵字,可以重命名一些數據類型也可以重定義一些新的數據類型。我們從以下幾個角度去理解typedef。1.typedef和普通數據類型類型typedef int MYINT;int a = 10; MYINT B = 20;123123我們給int重命名成MYIN
C++語言筆記系列之十八——虛函數(1)
自己 語言 數據類型 說明 出現 adium 重定義 angle rac 1.C++中的多態 (1)多態性:同一個函數的調用能夠進行不同的操作,函數重載是實現多態的一種手段。 (2)聯編:在編譯階段進行聯接。即是在編譯階段將一個函數的調用點和函數
C++語言筆記系列之二十——模版
輸出 類模板 pos 有一個 class 初始 個數 創建對象 example 1.隨意輸入兩個數x和y,輸出最大值max。 int max(int x, int y) {return x>y?x:y;} 2.函數模版 (1)用一種或者多