十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
目錄
成都創(chuàng)新互聯(lián)主營安塞網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都app軟件開發(fā)公司,安塞h5小程序制作搭建,安塞網(wǎng)站營銷推廣歡迎安塞等地區(qū)企業(yè)咨詢一.修煉必備
二.關(guān)鍵字
三.#define定義常量和宏(初識(shí))
四.指針(初識(shí))
五.結(jié)構(gòu)體(初識(shí))
六.總結(jié)
?。。」材悖晒ν黄浦辆殮馕鍖樱。?!
1.入門必備:VS2019社區(qū)版,下載地址:Visual Studio 較舊的下載 - 2019、2017、2015 和以前的版本 (microsoft.com)
2.趁手武器:印象筆記/有道云筆記
3.修煉秘籍:??途W(wǎng) - 找工作神器|筆試題庫|面試經(jīng)驗(yàn)|實(shí)習(xí)招聘內(nèi)推,求職就業(yè)一站解決_??途W(wǎng) (nowcoder.com)
4.雷劫必備:leetcode?力扣(LeetCode)官網(wǎng) - 全球極客摯愛的技術(shù)成長平臺(tái)?
注:遇到瓶頸怎么辦?百度百科_全球領(lǐng)先的中文百科全書 (baidu.com)
二.關(guān)鍵字1.關(guān)鍵字使用規(guī)則
auto | 自動(dòng)變量,局部變量 |
break | 跳出switch分支和循環(huán)的關(guān)鍵字 |
continue | 結(jié)束當(dāng)前循環(huán),執(zhí)行下一次循環(huán) |
do | 與while聯(lián)合使用:do while(); |
while | while循環(huán) |
for | for循環(huán) |
switch | 多分支,與case、default搭配使用 |
case | switch中的匹配語句 |
default | case匹配失敗的,則由default執(zhí)行 |
char | 字符型數(shù)據(jù)類型 |
short、int、long、long long | 短整型、整型、長整型、長長整型 |
float、double | 單精度浮點(diǎn)數(shù)、雙精度浮點(diǎn)數(shù) |
const | 把變量變成常變量,常變量的值不能改變 |
if | 條件語句 |
if - else | 單分支條件語句 |
if - else if - else if …… else | 多分支條件語句 |
enum | 枚舉類型 |
extern | 引用外部全局變量 |
goto | 無條件跳轉(zhuǎn)語句 |
register | 寄存器 |
return | 函數(shù)中返回值 |
signed | 有符號(hào)的,一般與數(shù)據(jù)類型搭配 |
unsigned | 無符號(hào)的,一般與數(shù)據(jù)類型搭配 |
sizeof | 得到對(duì)象或類型的存儲(chǔ)字節(jié)大小 |
static | 靜態(tài)的,一般與數(shù)據(jù)類型搭配 |
struct | 結(jié)構(gòu)體 |
typedef | 類型重定義 |
union | 聯(lián)合體(共用體) |
void | 用于函數(shù)無返回值,或形參列表無參數(shù) |
volatile | 防止編譯器對(duì)代碼進(jìn)行優(yōu)化? |
2.typedef關(guān)鍵字
? —— 對(duì)數(shù)據(jù)類型進(jìn)行重定義(重命名)
#includetypedef unsigned int unit; //把無符號(hào)整型重命名為unit
int main()
{
unit a = 10;
printf("%u\n", a);//%u是打印無符號(hào)整型
return 0;
}
3.static關(guān)鍵字
? i.static修飾局部變量:靜態(tài)局部變量
—— 靜態(tài)局部變量只被初始化一次,static改變了局部變量的生命周期,從一開始的該局部變量出了所在的{}后消失,但被static修飾后,該局部變量直到程序結(jié)束前都是一直存在的(在靜態(tài)區(qū)),且靜態(tài)局部變量只對(duì)定義自己的函數(shù)體始終可見(也就是說,只在自己的{}內(nèi)有用)
#includevoid test(int i)
{
static int j = 10;//靜態(tài)局部變量,只會(huì)初始化一次,隨著程序結(jié)束而結(jié)束
j++;
printf("i = %d j = %d\n", i, j);
}
int main()
{
int i = 0;
for (i = 0; i< 10; i++)
{
test(i);
}
return 0;
}
? ii.static修飾全局變量:靜態(tài)全局變量
—— 全局變量具有外部鏈接屬性,其他文件的全局變量,我們可以使用extern關(guān)鍵字來引用;static修飾全局變量后,該全局變量就不具有了外部鏈接屬性(該全局變量只能在本文件內(nèi)訪問)
#includeextern int sum;//引用外部全局變量:因?yàn)槿肿兞烤哂型獠挎溄訉傩?int main()
{
printf("%d\n", sum);
return 0;
}
add.c
int sum = 100;
#includeextern int sum;//因?yàn)閟um的外部鏈接屬性不存在了,所以無法引用這個(gè)變量
int main()
{
printf("%d\n", sum);//找不到sum變量
return 0;
}
add.c
//使全局變量的外部鏈接屬性不存在,只能在本文件使用,不能被外部文件使用
static int sum = 100;
? iii.static修飾函數(shù):靜態(tài)函數(shù)
—— static修飾函數(shù)和修飾全局變量一樣,使函數(shù)的外部鏈接屬性不存在,只能在本文件內(nèi)使用
1.#define定義常量
#include#define MAX 100
int main()
{
printf("%d\n", MAX);//100
return 0;
}
2.#define定義宏(后面詳解)
#include//#define定義宏
#define sum(a,b) ((a)+(b))
int main()
{
printf("%d\n", sum(10, 20)); //30
return 0;
}
注:以“#”開頭的均為預(yù)處理命令,“define”為宏定義命令;在宏定義時(shí),我們盡量給要進(jìn)行的操作加上括號(hào)
question:#define定義宏和函數(shù)有什么區(qū)別?(后面解答)
四.指針(初識(shí))1.內(nèi)存
? i.內(nèi)存是電腦上重要的存儲(chǔ)器,計(jì)算機(jī)中程序的運(yùn)行都是在內(nèi)存中進(jìn)行的
? ii.內(nèi)存被劃分為一個(gè)個(gè)小的內(nèi)存單元,每個(gè)內(nèi)存單元的大小是1字節(jié)
? iii.變量是在內(nèi)存中分配空間的,每個(gè)內(nèi)存單元都有地址,即變量也是有地址的
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
#includeint main()
{
int a = 10;//向內(nèi)存申請4個(gè)字節(jié)的空間儲(chǔ)存10
return 0;
}
2.地址是如何產(chǎn)生的?
?—— 32/64位機(jī)器上,32根/64根地址線(電線),電線是有通電的兩種狀態(tài):高電位和低電位,轉(zhuǎn)化為數(shù)字信號(hào)就是1/0,32/64個(gè)1/0組成的數(shù)字既是地址
3.取出變量的地址(&)
#include//使用&符號(hào)取出變量的地址
int main()
{
int num = 0;
scanf("%d", &num);//輸入函數(shù),&是取num變量的地址,輸入的數(shù)放在num的地址中
#//取出num的地址
//使用%p打印地址信息
printf("%p\n", &num);//006FF9E0:地址隨機(jī)產(chǎn)生,每次產(chǎn)生的地址不同
return 0;
}
4.如何儲(chǔ)存地址?
?—— 定義指針變量進(jìn)行存儲(chǔ)
?指針變量:用指針儲(chǔ)存一個(gè)變量的地址信息
? i.指針的形式:
char*
int*
long*
float*
double*
…………
? ii.指針變量的使用?
#includeint main()
{
int a = 10;
int* pa = &a;//&a取出了a的地址,使用pa進(jìn)行儲(chǔ)存a的地址,pa即為指針變量
char* c = 'a';
char* pc = &c;
return 0;
}
5.指針變量的大小
? i.32位機(jī)器上,指針變量的大小為4個(gè)字節(jié)
? ii.64位機(jī)器上,指針變量的大小位8個(gè)字節(jié)
#includeint main()
{
//sizeof求數(shù)據(jù)類型或?qū)ο蟮淖止?jié)大小
printf("char* =%d\n", sizeof(char*));
printf("short* =%d\n", sizeof(short*));
printf("int* =%d\n", sizeof(int*));
printf("long* =%d\n", sizeof(long*));
printf("long long* =%d\n", sizeof(long long*));
printf("float* =%d\n", sizeof(float*));
printf("double* =%d\n", sizeof(double*));
return 0;
}
?32位機(jī)器下指針變量大小
64位機(jī)器下指針變量大小?
1.什么是結(jié)構(gòu)體?
?—— C語言中想要描述某一事物更加的細(xì)致,不可能單單靠幾個(gè)數(shù)據(jù)類型就能解決,我們需要使用復(fù)雜類型才能把某一事物描述的更加細(xì)致,而結(jié)構(gòu)體有能力做到這個(gè)
2.認(rèn)識(shí)結(jié)構(gòu)體(struct)
#include//描述學(xué)生的結(jié)構(gòu)體
struct student
{
char name[12];//姓名
char sex;//性別
int age;//年齡
};
int main()
{
return 0;
}
3.初始化結(jié)構(gòu)體
#includestruct student
{
char name[12];
char sex[2];
int age;
};
int main()
{
struct student stu = { "小明",'男',18 };//聲明結(jié)構(gòu)體變量stu并初始化結(jié)構(gòu)體變量
return 0;
}
4.訪問結(jié)構(gòu)體成員信息
? i.使用.去訪問結(jié)構(gòu)體成員的信息
#includestruct student
{
char name[12];
char sex[3];
int age;
};
int main()
{
struct student stu = { "小明","男",18};//聲明結(jié)構(gòu)體變量并初始化結(jié)構(gòu)體變量
//打印結(jié)構(gòu)體變量的信息:使用.去訪問結(jié)構(gòu)體的成員信息
printf("name = %s sex = %s age = %d\n", stu.name, stu.sex, stu.age);
return 0;
}
? ii.使用(*xx).xx或->去訪問結(jié)構(gòu)體指針的成員信息
#includestruct student
{
char name[12];
char sex[3];
int age;
};
int main()
{
struct student stu = { "小明","男",18 };//聲明結(jié)構(gòu)體變量并初始化結(jié)構(gòu)體變量
struct student* p = &stu;//指針p儲(chǔ)存了stu的地址
//使用(*xx).xx或->去訪問結(jié)構(gòu)體指針的成員信息
printf("%s %s %d\n", (*p).name, (*p).sex, (*p).age);
printf("%s %s %d\n", p->name, p->sex, p->age);
return 0;
}
1.常用關(guān)鍵字
2.typedef關(guān)鍵字的作用
3.static關(guān)鍵字
? 1)修飾局部變量?
? 2)修飾全局變量
? 3)修飾函數(shù)
4.#define的作用
? 1)定義常量?
? 2)宏定義
5.指針:
? 1)內(nèi)存的解釋?
? 2)每個(gè)單元內(nèi)存的大小?
? 3)地址的產(chǎn)生
? 4)指針的形式?
? 5)指針變量的使用?
? 6)指針變量的大小
6.結(jié)構(gòu)體
? 1)為什么需要復(fù)雜結(jié)構(gòu)類型?
? 2)結(jié)構(gòu)體的樣式
? 3)結(jié)構(gòu)體的初始化
? 4)結(jié)構(gòu)體的成員訪問
?。?!恭喜你,成功突破至練氣五層?。?!你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧