C語言 C 結構體疑問小結

2021-08-17 07:34:44 字數 2282 閱讀 2742

1.關於結構體

情況一:最簡單的結構體定義

struct stu;
關鍵字

struct

表明這是在定義乙個結構體,stu是這種資料格式的名稱,因此我們可以像使用char、int等建立變數一樣使用stu建立stu型別的變數了。

情況二:附加"結構體變數」的初始化的結構體定義

struct stushenqinghuai;
相當於

struct stu;

struct stu shenqinghuai;

定義結構後,就可以建立這種型別的變數了:

stu s1; 

stu s2;

等。注意:如果是c語言程式設計應該這樣定義

struct stu stu3, 

c++允許在宣告結構體時省略關鍵字struct,而

c不可以。

情況三:僅需要使用一次變數的結構體定義

舉例來講,只需要使用乙個學生資訊的時候,可以省略結構體名稱。

struct;

struct stu shenqinghuai;

此時,不能再用這個結構體再定義新的學生結構體變數。

1.1 結構體變數初始化的幾種方法

情況一:宣告時直接初始化

#include#include#include"stdafx.h"

#includeusing namespace std;

struct stu;

struct stu shenqinghuai=;

void main(); 

即省略等號(=)。

2.如果大括號內未包含任何內容,如:stu stu3 {},則各個成員將被初始化為0,且stu3.no每個位元組被初始化為0。

情況二:結構體陣列初始化

可以建立元素為結構體的陣列,如:stu stud[10],

這樣stud就是乙個stu陣列,其每乙個元素(stud[0], stud[1]等)都是stu物件.

結構體陣列的初始化:

#include#include#include"stdafx.h"

#includeusing namespace std;

struct stu;

struct stu xinxi[3]=,,};

void main();

#include#include#include"stdafx.h"

#includeusing namespace std;

struct test;

//對於陣列和變數同時存在的情況,有如下定義方法:

struct test student[3] =,1},,2},,3}};

void main() mystruct;

語句實際上完成兩個操作:

1)定義結構型別

struct tagmystruct 

;

2)typedef為這個新的結構起了乙個名字,叫mystruct。 

typedef struct tagmystruct mystruct;
因此,mystruct實際上相當於struct tagmystruct,我們可以使用mystruct varname來定義變數。

3)規範做法:

struct tagnode 

; typedef struct tagnode *pnode;

具體可見

附件1:各種資料型別的預設值

資料型別            預設初始化值

int 0

char '\0x0'

float 0.0

double 0.0

char array[n] ""

int array[n]

C語言小結之結構體

一 什麼是結構體?結構體也叫結構,是由一系列具有相同型別或不同型別的資料構成的資料集合。二 結構體的宣告 struct tag variable list 比如描述乙個學生 struct stu 分號不可以丟掉,切記 特殊的宣告 結構體在宣告的時候可以不完全宣告,比如 struct x struct...

c語言小結 結構體

一 宣告結構的形式 1.標準格式 struct message 2.typedef的妙用 參見利用typedef簡化結構體的使用 二 結構體的初始化 1.初始化格式 1.struct message bank 2.struct message bank 2.對結構體內物件的訪問參見 兩種訪問物件的方...

C語言結構體

1.1.1 結構概念 1 結構存在的意義 存在是合理的,許多事物的存在是在不斷解決問題引入的,當然有更好的方法出現時改變也是合理的。在實際問題中,一組資料往往具有不同的資料型別。例如,在學生登記表中,姓名應為字元型,學號可為整型或字元型,年齡應為整型,性別應為字元型,成績可為整型或實型。顯然不能用乙...