中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

怎么通過建站來賺錢西安網(wǎng)站維護(hù)公司

怎么通過建站來賺錢,西安網(wǎng)站維護(hù)公司,做網(wǎng)站做論壇賺錢嗎,網(wǎng)站建設(shè)哪便宜目錄 1.結(jié)構(gòu)體(struct)類型 2.結(jié)構(gòu)標(biāo)記 3.typedef 4.定義結(jié)構(gòu)數(shù)組的方法 5.調(diào)用結(jié)構(gòu)數(shù)組的方法 6.將結(jié)構(gòu)體傳入函數(shù) 7.結(jié)構(gòu)體使用實(shí)例 1.結(jié)構(gòu)體(struct)類型 在C語言中,結(jié)構(gòu)體(struct&#xf…

目錄

1.結(jié)構(gòu)體(struct)類型?

2.結(jié)構(gòu)標(biāo)記?

3.typedef

4.定義結(jié)構(gòu)數(shù)組的方法?

5.調(diào)用結(jié)構(gòu)數(shù)組的方法?

6.將結(jié)構(gòu)體傳入函數(shù)

7.結(jié)構(gòu)體使用實(shí)例


1.結(jié)構(gòu)體(struct)類型?

在C語言中,結(jié)構(gòu)體(struct)類型是一種用戶自定義的復(fù)合數(shù)據(jù)類型,用于組合不同類型的數(shù)據(jù)成員在一個(gè)單獨(dú)的對(duì)象中。結(jié)構(gòu)體類型的定義可以包含多個(gè)數(shù)據(jù)成員,每個(gè)數(shù)據(jù)成員可以是不同的數(shù)據(jù)類型。結(jié)構(gòu)體類型的語法如下:

struct 結(jié)構(gòu)體名 {數(shù)據(jù)類型 成員名1;數(shù)據(jù)類型 成員名2;// ...
};

以下是一個(gè)示例:

struct student {int id;char name[20];int age;float score;
};

上述代碼定義了一個(gè)名為student的結(jié)構(gòu)體類型,包含了四個(gè)數(shù)據(jù)成員:idname、agescore,分別為整型、字符數(shù)組型、整型和浮點(diǎn)型。該結(jié)構(gòu)體類型可以用于定義表示學(xué)生的對(duì)象,每個(gè)對(duì)象包括了學(xué)生的ID、姓名、年齡和分?jǐn)?shù)。結(jié)構(gòu)體類型創(chuàng)建后,需要通過聲明一個(gè)結(jié)構(gòu)體變量來實(shí)際分配內(nèi)存,例如:

struct student s; // 聲明一個(gè)名為s的結(jié)構(gòu)體變量,表示一個(gè)學(xué)生
s.id = 1001; // 設(shè)置學(xué)生的ID為1001
strncpy(s.name, "Tom", sizeof(s.name)); // 設(shè)置學(xué)生的姓名為Tom
s.age = 20; // 設(shè)置學(xué)生的年紀(jì)為20
s.score = 90.5; // 設(shè)置學(xué)生的分?jǐn)?shù)為90.5

2.結(jié)構(gòu)標(biāo)記?

C語言中,結(jié)構(gòu)標(biāo)記指的是定義一個(gè)結(jié)構(gòu)體類型的名稱,而不是直接定義結(jié)構(gòu)體變量。結(jié)構(gòu)標(biāo)記的聲明格式如下:

struct 結(jié)構(gòu)體名稱;

例如,以下是一個(gè)結(jié)構(gòu)標(biāo)記的聲明:

struct student;

這個(gè)聲明定義了一個(gè)名為"student"的結(jié)構(gòu)體類型,但沒有定義具體的結(jié)構(gòu)體成員。這是因?yàn)榻Y(jié)構(gòu)標(biāo)記只是為結(jié)構(gòu)體類型分配了一個(gè)名稱,而沒有為它分配內(nèi)存空間。

結(jié)構(gòu)標(biāo)記的主要作用是方便在后面的代碼中使用結(jié)構(gòu)體類型??梢允褂媒Y(jié)構(gòu)標(biāo)記名稱來聲明結(jié)構(gòu)體變量、作為函數(shù)參數(shù)類型以及作為函數(shù)返回類型等。

3.typedef

C語言中,typedef是一種定義類型別名的關(guān)鍵字。它的用法如下:

  • 聲明簡單類型別名
typedef 原類型別名 新類型別名;

例如:

typedef int INT;
INT a = 1;

這樣將int類型的a定義為INT類型的變量。

  • 聲明結(jié)構(gòu)體類型別名
typedef struct 原類型別名 新類型別名;

例如:

typedef struct date {int year;int month;int day;
} DATE;
DATE d = {2021, 10, 1};

這樣將struct date類型的d定義為DATE類型的變量。

  • 聲明指針類型別名
typedef 原類型別名 * 新類型別名;

例如:

typedef int * PTR_INT;
int i = 1;
PTR_INT ptr_i;
ptr_i = &i;

這樣將int類型的指針定義為PTR_INT類型的指針變量。

使用typedef可以使代碼更加簡潔易懂,提高代碼的可讀性。

4.定義結(jié)構(gòu)數(shù)組的方法?

定義結(jié)構(gòu)數(shù)組的方法如下:

struct student {char name[20];int age;char gender;
};struct student stu[3]; // 定義一個(gè)包含3個(gè)元素的結(jié)構(gòu)數(shù)組

這里定義了一個(gè)結(jié)構(gòu)體 student,包含了學(xué)生的姓名、年齡和性別,然后通過結(jié)構(gòu)體定義一個(gè)包含3個(gè)元素的結(jié)構(gòu)數(shù)組 stu

5.調(diào)用結(jié)構(gòu)數(shù)組的方法?

調(diào)用結(jié)構(gòu)數(shù)組的方法如下:

#include <stdio.h>int main() {struct student stu[3] = {{"Tom", 18, 'M'},{"Lucy", 19, 'F'},{"John", 20, 'M'}};for(int i = 0; i < 3; i++) {printf("Name: %s\n", stu[i].name);printf("Age: %d\n", stu[i].age);printf("Gender: %c\n", stu[i].gender);}return 0;
}

這里通過初始化方式給結(jié)構(gòu)數(shù)組賦值,然后使用 for 循環(huán)輸出每個(gè)學(xué)生的信息。在輸出時(shí)使用了結(jié)構(gòu)體成員連接運(yùn)算符 .(點(diǎn)號(hào)) 來訪問每個(gè)學(xué)生的姓名、年齡和性別。

C語言中的結(jié)構(gòu)體是一種自定義的數(shù)據(jù)類型,可以包含多個(gè)不同類型的數(shù)據(jù)成員。結(jié)構(gòu)體的定義可以在函數(shù)內(nèi)部或外部,格式為:

struct 結(jié)構(gòu)體名 {數(shù)據(jù)類型 成員名1;數(shù)據(jù)類型 成員名2;...
};

其中,結(jié)構(gòu)體名是自己定義的,可以起任何名字。成員名也可以任意取名,但要符合C語言的命名規(guī)則。

結(jié)構(gòu)體變量定義格式為:

struct 結(jié)構(gòu)體名 變量名;

訪問結(jié)構(gòu)體成員時(shí)使用“.”操作符,格式為:

變量名.成員名

例如:

struct student {char name[20];int age;float score;
};int main() {struct student s1;strcpy(s1.name, "Tom");s1.age = 18;s1.score = 88.5;printf("%s's age is %d, score is %.1f\n", s1.name, s1.age, s1.score);return 0;
}

輸出結(jié)果為:

Tom's age is 18, score is 88.5

?

6.將結(jié)構(gòu)體傳入函數(shù)

結(jié)構(gòu)體可以像其他數(shù)據(jù)類型一樣傳遞給函數(shù)。下面是一些示例代碼:

假設(shè)有以下結(jié)構(gòu)體:

typedef struct Person {char name[30];int age;
} Person;
  • 將結(jié)構(gòu)體作為函數(shù)參數(shù)

將結(jié)構(gòu)體作為函數(shù)的參數(shù),可以通過值傳遞或指針傳遞。

void print_person(Person p) {printf("姓名:%s,年齡:%d\n", p.name, p.age);
}void update_person(Person *p) {p->age += 1;
}

在這個(gè)示例代碼中,我們定義了兩個(gè)函數(shù)。print_person函數(shù)用于打印結(jié)構(gòu)體Person中的信息,update_person函數(shù)用于修改結(jié)構(gòu)體Person中的信息。print_person函數(shù)使用的是值傳遞,即將結(jié)構(gòu)體Person的值作為參數(shù)傳遞給函數(shù)。update_person函數(shù)使用的是指針傳遞,即將結(jié)構(gòu)體Person的指針作為參數(shù)傳遞給函數(shù)。

  • 將結(jié)構(gòu)體指針作為函數(shù)參數(shù)

如果要在函數(shù)中修改結(jié)構(gòu)體的值,可以將結(jié)構(gòu)體的指針作為參數(shù)傳遞給函數(shù)。這樣可以避免在函數(shù)內(nèi)部創(chuàng)建新的結(jié)構(gòu)體副本。

void update_person(Person *p) {p->age += 1;
}

在此示例代碼中,我們定義了一個(gè)update_person函數(shù),它使用了指針傳遞。函數(shù)使用->運(yùn)算符來訪問結(jié)構(gòu)體中的成員。

調(diào)用上述函數(shù)的方法如下:

Person person = {"Tom", 20};
print_person(person); // 輸出 "姓名:Tom,年齡:20"
update_person(&person);
print_person(person); // 輸出 "姓名:Tom,年齡:21"

7.結(jié)構(gòu)體使用實(shí)例

利用結(jié)構(gòu)體求投票數(shù)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>#define MAX_CANDIDATES 10// 候選人結(jié)構(gòu)體
typedef struct Candidate {char name[50]; // 候選人名字int vote_count; // 票數(shù)
} Candidate;int main() {int num_candidates;Candidate candidates[MAX_CANDIDATES];// 獲取候選人數(shù)量printf("請(qǐng)輸入候選人數(shù)量(最多%d個(gè)):", MAX_CANDIDATES);scanf("%d", &num_candidates);getchar(); // 消耗輸入緩沖區(qū)中的換行符// 獲取候選人信息for (int i = 0; i < num_candidates; i++) {printf("請(qǐng)輸入候選人%d的名字:", i+1);fgets(candidates[i].name, 50, stdin);candidates[i].name[strcspn(candidates[i].name, "\n")] = '\0'; // 去除輸入緩沖區(qū)中的換行符candidates[i].vote_count = 0; // 初始化票數(shù)為0}// 投票while (1) {char candidate_name[50];printf("請(qǐng)輸入你要投票的候選人名字(輸入exit結(jié)束投票):");fgets(candidate_name, 50, stdin);candidate_name[strcspn(candidate_name, "\n")] = '\0';if (strcmp(candidate_name, "exit") == 0) {break;}int found = 0;for (int i = 0; i < num_candidates; i++) {if (strcmp(candidate_name, candidates[i].name) == 0) {candidates[i].vote_count++;found = 1;break;}}if (!found) {printf("沒有找到名為%s的候選人,請(qǐng)重新輸入。\n", candidate_name);}}// 輸出投票結(jié)果printf("投票結(jié)果:\n");for (int i = 0; i < num_candidates; i++) {printf("%s: %d 票\n", candidates[i].name, candidates[i].vote_count);}return 0;
}

在這個(gè)例子中,我們定義了一個(gè)候選人結(jié)構(gòu)體,包含了候選人的名字和票數(shù)。在程序運(yùn)行時(shí),首先獲取候選人數(shù)量和候選人信息,并初始化各個(gè)候選人的票數(shù)為0。然后,利用一個(gè)循環(huán)獲取用戶輸入的投票信息,直到用戶輸入exit為止。每次獲取到用戶輸入的候選人名字后,我們遍歷候選人數(shù)組,查找是否有對(duì)應(yīng)的候選人。如果找到了,則給該候選人的票數(shù)加1;否則輸出錯(cuò)誤提示信息。最后,我們輸出投票結(jié)果,顯示每個(gè)候選人的名字和票數(shù)。

?

http://www.risenshineclean.com/news/59213.html

相關(guān)文章:

  • 在哪個(gè)網(wǎng)站開發(fā)國外客戶游戲代理免費(fèi)加盟
  • 網(wǎng)站上點(diǎn)擊圖片局部放大如何做百度云搜索引擎入口百度網(wǎng)盤
  • 做網(wǎng)站要備案嗎美國最新新聞?lì)^條
  • 怎么用PS做珠寶網(wǎng)站上海seo培訓(xùn)中心
  • 蕪湖推廣公司網(wǎng)站排名軟件優(yōu)化
  • 鄭州漢獅做網(wǎng)站多少錢谷歌seo網(wǎng)站運(yùn)營
  • 寧波新亞建設(shè)公司網(wǎng)站seo的主要工作內(nèi)容
  • 佛山網(wǎng)站建設(shè)公司怎么做網(wǎng)站文章優(yōu)化技巧
  • 做網(wǎng)站的鏡像是什么意思怎么做市場(chǎng)營銷和推廣
  • 重慶網(wǎng)站建設(shè)哪家公司那家好杭州網(wǎng)站推廣平臺(tái)
  • 如何做一家門戶網(wǎng)站seo常規(guī)優(yōu)化
  • 網(wǎng)站建設(shè)的實(shí)訓(xùn)心得東莞seo推廣公司
  • 扁平風(fēng)格網(wǎng)站 模板臨沂做網(wǎng)站的公司
  • 互聯(lián)網(wǎng)網(wǎng)站建設(shè)制作精品成品網(wǎng)站源碼
  • 外國人做網(wǎng)站如何推廣app
  • 沈陽大十字街附近做網(wǎng)站公司百度怎么推廣網(wǎng)站
  • 山東省兩學(xué)一做網(wǎng)站seopc流量排行榜企業(yè)
  • 邢臺(tái)做網(wǎng)站的價(jià)格成都搜索優(yōu)化排名公司
  • 湖里區(qū)建設(shè)局網(wǎng)站無錫網(wǎng)絡(luò)優(yōu)化推廣公司
  • php如何做局域網(wǎng)的網(wǎng)站今日頭條指數(shù)查詢
  • 自己可以進(jìn)行網(wǎng)站建設(shè)嗎上海知名的seo推廣咨詢
  • 全國疫情最新中高風(fēng)險(xiǎn)地區(qū)名單青島百度seo代理
  • 信息設(shè)計(jì)網(wǎng)站百度網(wǎng)盤服務(wù)電話6988
  • 東莞外貿(mào)優(yōu)化公司東莞搜索優(yōu)化十年樂云seo
  • 網(wǎng)站建設(shè)寫代碼自己怎么創(chuàng)業(yè)附近哪里有計(jì)算機(jī)培訓(xùn)班
  • 網(wǎng)站建設(shè)中最重要的南寧百度推廣代理商
  • 網(wǎng)站seoapp阿亮seo技術(shù)
  • 甘肅省城鄉(xiāng)和建設(shè)廳網(wǎng)站首頁seo優(yōu)化方法網(wǎng)站快速排名推廣渠道
  • php在動(dòng)態(tài)網(wǎng)站開發(fā)深圳網(wǎng)絡(luò)公司推廣平臺(tái)
  • 網(wǎng)站建設(shè)信息模板下載在哪里可以做百度推廣