日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

结构体小结2

發(fā)布時(shí)間:2024/10/12 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 结构体小结2 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
結(jié)構(gòu)體與指針和鏈表
結(jié)構(gòu)體的聲明
結(jié)構(gòu)體是一種類型,其中包含數(shù)個(gè)不同的類型變量
struct student
{
char name[20];
int age;
int number;
}
struct student x;
struct student x[20],*x;
此時(shí)的x與x[20],*x均為同一種類型
注意:
? ?struct
{
int a;
char b;
float c;
}x;
struct
{
int a;
char b;
float c;
}y[20],*z;
現(xiàn)在的x,y,*z,是完全不同的類型。
也可以使用typedef關(guān)鍵字聲明一種新的數(shù)據(jù)類型
typefde struct student
{
char name[20];
int age;
int number;
}STU;
以后想要聲明這種結(jié)構(gòu)使用STU 就可以了,當(dāng)然也可以是用STU 來聲明指針
STU one;
STU *p;
p=&one;
這都是合法的使用方式。就可以通過p->name來訪問名字了。
結(jié)構(gòu)體的自引用行為
struct student
{
int a;
struct student *b;
int c;
}
這樣引用是合法的只不過指針指向的是同一類型的不同的結(jié)構(gòu),會(huì)在鏈表及數(shù)據(jù)結(jié)構(gòu)中提到。
結(jié)構(gòu)的初始化類似于數(shù)組的初始化,在聲明是使用大括號(hào)可以初始化
在使用指針時(shí)引上例,*p+1;*(p+1);p+1都是非法的,如果one 是一個(gè)數(shù)組那就另說,
? ? ?->的優(yōu)先級(jí)高于&的優(yōu)先級(jí)
結(jié)構(gòu)體有點(diǎn)類似于指針是一層一層的結(jié)構(gòu)
在聲明一個(gè)結(jié)構(gòu)體的各個(gè)內(nèi)容時(shí),最好讓對(duì)邊界要求最嚴(yán)格的成員首先出現(xiàn),對(duì)邊界要求最弱的成員最后出現(xiàn),這種方法可以自大限度地減少因邊界對(duì)其而帶來的空間損失。
例如
? ? struct ALU
{
int a;
char b;
char c;
};
當(dāng)然為了程序的可維護(hù)性,也可以不用這樣做,但是建議這樣做
可以使用offsetof(type,member)來確定這個(gè)指定成員開始次存儲(chǔ)的位值距離結(jié)構(gòu)開始存儲(chǔ)的位值偏移幾個(gè)字節(jié)
在調(diào)用結(jié)構(gòu)體時(shí)最好用指針形式調(diào)用這樣效率會(huì)高很多,如果可以把它申請(qǐng)成寄存器變量將會(huì)更加的快捷方便。
使用const關(guān)鍵字防止結(jié)構(gòu)體內(nèi)容被修改




版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。

轉(zhuǎn)載于:https://www.cnblogs.com/zmrlinux/p/4921437.html

總結(jié)

以上是生活随笔為你收集整理的结构体小结2的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。