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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

C:结构体

發(fā)布時間:2024/4/15 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C:结构体 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
結(jié)構(gòu)體

構(gòu)造類型:就是有基本的類型組成的

1.結(jié)構(gòu)體 ?結(jié)構(gòu)體是一種自定義的數(shù)據(jù)類型 和 int float 是一樣的都可以定義變量?

? 數(shù)組 只能存放一種類型的容器 ? ?

? 結(jié)構(gòu)體 ? 可以存放多種數(shù)據(jù)類型? 相對于數(shù)組更加的完整

2.一個結(jié)構(gòu)體可以被作為另一個結(jié)構(gòu)體中的普通變量 ??

3.結(jié)構(gòu)體的聲明(數(shù)據(jù)類型的聲明)

/*? ? struct 結(jié)構(gòu)體名 {

? ? ? ? char name[20];

? ? ? ? int age; //結(jié)構(gòu)體成員? 結(jié)構(gòu)體成員之間是要用分號隔開 ? 在結(jié)構(gòu)體內(nèi)部定義變量的時候僅僅是聲明,不能賦值

? ? }; //分號是結(jié)構(gòu)體聲明的結(jié)束標(biāo)示符,在聲明的時候不能省略

?*/

聲明一個結(jié)構(gòu)體變量(變量的聲明)

? ? //定義一個結(jié)構(gòu)體變量

? ? struct student stu1 ={"lee", 18,'m',90};

struct student{//學(xué)生的結(jié)構(gòu)體char name[20];int age; // char stuTele[11];char gender;//性別float score;};struct point{//點的結(jié)構(gòu)體float x;//橫坐標(biāo)float y;//縱坐標(biāo) };struct rect{//長方形結(jié)構(gòu)體float width;//寬度float height;//長度float x;//x坐標(biāo)float y;//y坐標(biāo) };struct round{//圓圈Point p;//一個結(jié)構(gòu)體可以被作為另一個結(jié)構(gòu)體中的普通變量float r;};struct cube{//定義一個立方體float leight;//float width;//寬度float height;//高度 }; int main(int argc, const char * argv[]) {//main() 上面的都是 全局變量//結(jié)構(gòu)體類型 struct + 結(jié)構(gòu)體名//定義一個結(jié)構(gòu)體變量struct student stu1 = {"lee", 18,'m',90};struct point p1 = {23, 12.25};struct rect r1 = {23,34};struct round round1 = { {12.5,15.6}, 12.5};//這里要注意一下struct cube cube1 = {12.5,3.4,23.5};}

//給結(jié)構(gòu)體的類型重命名? typedef ? ? ? ? ??

? ??typedef struct student Student;

// 結(jié)構(gòu)體重命名的第二種形式typedef struct data{int year;int mounth;int day;}Day;//直接在定義的時候就重命名了 新起的名字與重命名的是等同的 都可以用Day d1 = {2015,07,31};// 我們使用重命名的名字進(jìn)行定義變量Student stu1 = {"lee", 18,'m',90}; // 結(jié)構(gòu)體成員的訪問 結(jié)構(gòu)體變量.成員變量名//獲取stu 的姓名,性別,年齡,分?jǐn)?shù)//給字符串賦值的時候要用到 strcpy()函數(shù)strcpy(stu1.name, "Kitty");//給stud1的姓名改為kittyprintf("%s \n",stu1.name);stu1.age;stu1.name;stu1.gender;stu1.score; //獲取stu1的基本信息; 輸出其信息//結(jié)構(gòu)體的訪問是通過 變量名.成員變量名printf("name = %s age = %d gender = %c score = %.2f",stu1.name,stu1.age,stu1.gender,stu1.score); struct point p ={23.3,45.7};//賦值的第一種方式 單個成員逐個賦值p.x = 12;p.y = 13;//賦值的第二種方式 整體結(jié)構(gòu)體賦值struct point p1 = {120,23};p = p1;printf("%.2f %.2f \n",p.x,p.y);

? ??//對于整體賦值的小技巧 ? 數(shù)組作為一個結(jié)構(gòu)體的成員時,就可以直接給數(shù)組賦值,對比之前數(shù)組是不能直接賦值的

?

//對于整體賦值的小技巧 數(shù)組作為一個結(jié)構(gòu)體的成員時,就可以直接給數(shù)組賦值,對比之前數(shù)組是不能直接賦值的printf("%.2f %.2f \n",p.x,p.y);printf("%.2f %.2f \n",p.x,p.y);//語句要寫在函數(shù)的內(nèi)部//賦值技巧struct one{int a[10];int num;};//數(shù)組作為結(jié)構(gòu)體成員變量時,可以通過結(jié)構(gòu)體的整體賦值為數(shù)組的每個元素賦值struct one s1 ={{1,2},3};struct one s2 ={{12,13},3};s1 = s2;for (int i = 0; i < 2; i++) {printf("%d \t",s1.a[i]);}

?

? ??minAgePer = p1.age > p2.age ? p1 : p2;//這里是保存的是最大年齡的人的整體信息

? ? minAgePer = minAgePer.age > p3.age ? minAgePer : p3;

?下午筆記

struct teachr{char name[20];//分號隔開char gender;int age; // float height; };//定義一個有5個元素的結(jié)構(gòu)體數(shù)組struct teachr Tea[5] ={//存有5個結(jié)構(gòu)體的數(shù)組 結(jié)構(gòu)體數(shù)組{"AA",'m',22},//結(jié)構(gòu)體數(shù)組元素 以逗號 隔開{"鄧超",'m',19},{"王大治",'m',14},{"陳姐",'w',12},{"XXX",'w',21},//這里的逗號寫不寫無所謂 };int b = Tea[3].age;struct teachr tea1 = Tea[0];for (int i = 0; i < 5; i++) {printf("name is %s ,age is %d, sex is %c \n",Tea[i].name,Tea[i].age,Tea[i].gender);}

結(jié)構(gòu)體的內(nèi)存空間:結(jié)構(gòu)體的內(nèi)存對齊方式--------(結(jié)構(gòu)體所占內(nèi)存空間大小 是以成員中最大數(shù)據(jù)類型為基本單位分配的) ?

*****? ?

struct test{char m[10];//如果把這一行放最后面 打印為 16double a;//double 8個字節(jié)float b;// int 、float 4個字節(jié)//為了節(jié)省存儲空間我們把定義的時候把所占內(nèi)存最大的放最上面// char m[10]; double a; float a; 順序不同的放看結(jié)果 };printf("%lu \n",sizeof(struct test));

分配的空間 前面的必須是后面的整數(shù)倍

?

?實戰(zhàn):

1.創(chuàng)建一個 Size 結(jié)構(gòu)體,包含 width,height 兩個變量。 并寫以下函數(shù): 函數(shù) 1,判斷兩個 size 是否等寬。 函數(shù) 2,判斷兩個 size 是否在等高。 函數(shù) 3,判斷兩個 size 是否相等2.創(chuàng)建一個 Point 結(jié)構(gòu)體,包含 x,y 兩個變量。 并寫以下函數(shù): 函數(shù) 1,判斷兩個點是否在一條水平線上。 函數(shù) 2,判斷兩個點是否在一條垂直線上。 函數(shù) 3,判斷兩個點是否相等3.某班有 5 個學(xué)生,三門課。分別編寫 3 個函數(shù)實現(xiàn)以下要求: (1) 求各門課的平均分; (2) 找出有兩門以上不及格的學(xué)生,并輸出其學(xué)號和不及格課程的成績; (3) 找出三門課平均成績在 85-90 分的學(xué)生,并輸出其學(xué)號和姓名 4.創(chuàng)建一個Rect結(jié)構(gòu)體,包含origin,size兩個變量。其中origin是Point類型的,size是Size類型的。 并寫以下函數(shù): 函數(shù)1,判斷兩個Rect是否相交。 函數(shù)2,判斷兩個Rect是否包含某個Point。 函數(shù)3,判斷一個Rect是否在另外一個Rect中。 ====== 耶穌有13個門徒, 循環(huán)開始報數(shù), 報道3的人去死, 最后存活的就是叛徒,找到叛徒的原來位置 有A,B,C,D四個候選人, 有n個人對其進(jìn)行投票, 按票數(shù)從高到低進(jìn)行輸出. 好的題目

?

?

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

超強(qiáng)干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生

總結(jié)

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

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