首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言結構體進階:內存對齊、賦值陷阱、指標操作與類型總結

     編輯:關於C語言

C語言結構體進階:內存對齊、賦值陷阱、指標操作與類型總結

定義與初始化

struct Person { int age; double height; char *name; };
struct Person p = {18, 1.80, "jack"};           // 定義並初始化
struct Person p2 = {.age=19, .height=1.76, .name="tom"}; // C99 指定初始化器

內存佈局與對齊

  • struct Date {int y,m,d;} 佔 12 字節(連續)。
  • struct Student {int age; char *name;} 佔 16 字節(64位下指針 8 字節,結構體大小為最大成員對齊的倍數)。

賦值規則

p.age = 20; p = {19, 1.77, "jame"}; // 錯誤:僅初始化時可用花括號列表

結構體變量間可整體賦值(淺拷貝)。

指針訪問三種方式

student *ps = &stu;
stu.age;       // 1. 變量名直接訪問
(*ps).age;     // 2. 解引用後訪問
ps->age;       // 3. 箭頭運算符(推薦)

嵌套結構體

struct Date {int y,m,d;};
struct Student {int age; struct Date birthday;};
struct Student s = {18, {1996,9,9}};

數據類型體系總結

  • 基本類型:int(含 long/short/signed/unsigned)、float/double、char(1字節,存 ASCII)。
  • 構造類型:數組(同類型)、結構體(異類型)。
  • 指針類型:存地址,間接操作。
  • 枚舉類型:固定取值集合。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved