国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C語言第四課--------要我們一起快樂的學習吧

這篇具有很好參考價值的文章主要介紹了C語言第四課--------要我們一起快樂的學習吧。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

作者前言

有興趣的小可愛可以來參觀我的giteehttps://gitee.com/qin-laoda

目錄

關鍵字 typedef
關鍵字static
#define 定義常量和宏
指針
結(jié)構(gòu)體
___________________________________________________________
緊接上一篇博客,在上一篇博客中我簡單的解釋了那些關鍵字的意思
下面我們插播一些小知識
插播一:
C語言第四課--------要我們一起快樂的學習吧

?內(nèi)存的大概劃分

插播二:

在VScode中 ,每個.c文件的運行都是單獨的經(jīng)過編譯器處理的

關鍵字

auto ? break ? case ? char ? const ? continue ? default ? do ? double else ? enum ?
extern float ? for ? goto ? if ? int ? long ? register ? ? return ? short ? signed ? ? ? ? ? ? ?
sizeof ? static struct ? switch ? typedef union ? unsigned ? void ? volatile ? while ? ?

?

auto(使局部變量自動創(chuàng)建與自動銷毀)

代碼:
#include <stdio.h>
int main()
{
	auto int a = 0;
	int b = 0;
	return 0; 
}

其實在定義局部變量的時候我們只是省略了auto

關鍵字 typedef

代碼:

#include <stdio.h>

typedef unsigned int uint;
typedef int INT;
int main()
{
	unsigned int a = 0;
	uint b = 2;
	INT c = 3;
	printf("a=%d b=%d c=%d", a, b, c);
	return 0;
}

結(jié)果:

C語言第四課--------要我們一起快樂的學習吧

可以看出typedef(類型重定義),太長的數(shù)據(jù)類型我們就需要簡化?

uint? ?INT都是別名

關鍵字static(靜態(tài)的)

有三種用法 修飾局部變量? ?修飾全局變量? 修飾函數(shù)

下面我

來簡單介紹

static 修飾局部變量

代碼:

#include <stdio.h>
//沒有static修飾
int Add_1()
{
	int i = 0;
	i += 2;
	return i;
}
//有static修飾
int Add_2()
{
	static int i = 0;
	i += 2;
	return i;
}
int main()
{
	int a = 0;
	int b = 0;
	while (a < 5)
	{
		int c = 0;
		c = Add_1();
		printf("c=%d\n", c);	
		a++;
	}
	while (b < 5)
	{
		int d = 0;
		d = Add_2();
		printf("d=%d\n", d);
		b++;
	}
	return 0;
}

結(jié)果:

C語言第四課--------要我們一起快樂的學習吧

?static int i = 0的創(chuàng)建是進入函數(shù)就創(chuàng)建好了,不是運行它才創(chuàng)建,往后再調(diào)用就會繼續(xù)使用之前的i.不會創(chuàng)建新的i

我們可以查看反匯編C語言第四課--------要我們一起快樂的學習吧

?C語言第四課--------要我們一起快樂的學習吧

兩者不同?

查看反匯編的方法

調(diào)試到如圖中的為位置

C語言第四課--------要我們一起快樂的學習吧

?C語言第四課--------要我們一起快樂的學習吧

然后右擊鼠標?

static修飾局部變量總結(jié):

局部變量在沒有static修飾會在出函數(shù)范圍就自動銷毀,有static修飾的局部變量,在第一次運行函數(shù)就創(chuàng)建了,出函數(shù)也不會銷毀,就無需再次創(chuàng)建,可以理解為生命周期延長了,但是作用域不變

本質(zhì):在沒有static修飾的局部變量就會存放在棧區(qū),而被static修飾的局部變量就會存放在靜態(tài)區(qū),靜態(tài)區(qū)的變量的生命周期和全局變量是一樣的

static修飾全局變量

第一種

代碼1:

#include <stdio.h>
int a = 12;
int g_val()
{
	printf("a_val():%d\n", a);
}
int main()
{
	printf("a=%d\n", a);
	g_val();
	return 0;
}

結(jié)果:

C語言第四課--------要我們一起快樂的學習吧

?第二種

C語言第四課--------要我們一起快樂的學習吧

?可以看出全局變量有外部鏈接屬性,這種屬性決定了全局變量可以在多個文件使用

extern 聲明外部符?

當我們利用static修飾全局變量時

C語言第四課--------要我們一起快樂的學習吧

?原因是啥呢?

其實被static修飾的全局變量會把全局變量的外部鏈接屬性變成內(nèi)部鏈接屬性(就是全局變量不能跨文件使用,只能在自己的.c文件使用),注意存儲的地方還是靜態(tài)區(qū),加了static修飾的全局變量只是告訴編譯器? "這個全局變量你只能在自己的,c文件使用,,不能亂跑"

可以理解為改變了作用域

static修飾函數(shù)

C語言第四課--------要我們一起快樂的學習吧

可以看出函數(shù)也是有外部鏈接屬性,可以跨文件使用

當我們利用static修飾函數(shù)時

C語言第四課--------要我們一起快樂的學習吧

?可以看出其實被static修飾的函數(shù)會把函數(shù)的外部鏈接屬性變成內(nèi)部鏈接屬性(就是全局變量不能跨文件使用,只能在自己的.c文件使用)

#define 定義常量和宏

我們前面回顧一下常量的定義

字面常量

#define定義常量

const修飾常變量

枚舉常量(enum)

#include <stdio.h>
//定義標識符常量
#define M 100
#define CH 'g'
//
int main()
{
	printf("M=%d\n", M);
	printf("CH=%c\n", CH);


	return 0;
}

#define定義宏?

宏可以有參數(shù)也可以無參數(shù),宏是替換的

C語言第四課--------要我們一起快樂的學習吧

?代碼:

#include <stdio.h>
//宏
#define ADD(x, y) (x+y)
//函數(shù)
int Add(int x, int y)
{
	return x + y;
}
int main()
{
	int a = 12;
	int b = 13;
	int c = ADD(a, b);
	printf("c=%d", c);


	return 0;
}

結(jié)果

C語言第四課--------要我們一起快樂的學習吧

?指針

內(nèi)存空間為了有效的進行管理:

1.把內(nèi)存劃分為一個個有效的內(nèi)存單元(比如1個字節(jié))

2.給每個內(nèi)存單元編號==地址==指針

C語言第四課--------要我們一起快樂的學習吧

?地址怎么來呢

C語言第四課--------要我們一起快樂的學習吧

圖中是32位機器,就有32根地址線,一根地址線產(chǎn)生1個bit位,共有2^32個地址,一個地址有32位bit

注意指針大小和內(nèi)存單位大小是兩個不同的概念,指針大小是指針大小,內(nèi)存單位大小是內(nèi)存單位大小

我們還可以參考內(nèi)存

代碼:

#include <stdio.h>
int main()
{
	int a = 10;



	return 0;
}

C語言第四課--------要我們一起快樂的學習吧

?C語言第四課--------要我們一起快樂的學習吧

?如果是多個內(nèi)存儲存一個變量,只會顯示第一個內(nèi)存的指針,因為我們可以通過運算算出其他指針

指針變量

代碼:

#include <stdio.h>
int main()
{
	int a = 10;
	//指針變量
	int* p = &a;//0x007AFBA8---內(nèi)存的編號==地址==指針
	//*說明p為指針變量  
	//int 是說明p指向的是int 類型的變量
    *p;//*解引用操作符 ,通過地址找到所指向的對象,即a   *pa==a
	printf("%d", *p);
	return 0;
}

*說明p為指針變量

int 是說明p指向的是int 類型的變量

C語言第四課--------要我們一起快樂的學習吧

?我們創(chuàng)建的指針變量是放入的是一個指針(內(nèi)存的編號),不是內(nèi)存

指針總結(jié):

1.內(nèi)存會劃分以字節(jié)為單位的內(nèi)存單元

2.每個內(nèi)存單元都有編號,編號==指針==地址

3.c語言中創(chuàng)建的變量,是向內(nèi)存申請一塊空間,比如int a = 12,就是向內(nèi)存申請一塊4個字節(jié)的內(nèi)存空間,這個空間有編號

4.這個地址要存儲起來創(chuàng)建一個指針變量,如 int* p = &a

5.p存放的是a申請空間的編號,即指針,所以叫指針變量(用于存儲編號的)

6. *p通過p存放的編號找到a

注意一下:

存入指針變量的任何東西都當作指針處理

指針變量的大小

代碼:

#include <stdio.h>
int main()
{
	char* a;
	int* b;
	float* c;
	printf("%d\n", sizeof a);
	printf("%d\n", sizeof b);
	printf("%d\n", sizeof c);
	return 0;
}

結(jié)果:

C語言第四課--------要我們一起快樂的學習吧

?可以看出指針變量空間大小為4,

其實一個指針變量的空間大小是由地址線的條數(shù)決定的,一根地址線產(chǎn)生一個bit ,

結(jié)構(gòu)體(復雜的對象)

比如 一個人:名字,身份證........

代碼:

#include <stdio.h>
struct Stu
{
	char name[20];
	int age;
	int score;
};
int main()
{
	int num = 0;
	struct Stu name1 = { "張三", 18, 88};
	struct Stu name2 = { "張以", 15, 85};
	struct Stu name3 = { "張地方", 10, 86};
	struct Stu* ps = &name1;
	printf("%s %d %d\n", name1.name, name1.age, name1.score);
	printf("%s %d %d\n", name2.name, name2.age, name2.score);
	printf("%s %d %d\n", name3.name, name3.age, name3.score);
	printf("%s %d %d\n", ps->name, ps->age, ps->score);
	printf("%s %d %d\n", (*ps).name, (*ps).age, (*ps).score);
	return 0;
}

結(jié)果:

C語言第四課--------要我們一起快樂的學習吧

?結(jié)構(gòu)體變量.結(jié)構(gòu)體成員

結(jié)構(gòu)體地址->結(jié)構(gòu)體成員

(*結(jié)構(gòu)體地址).結(jié)構(gòu)體成員

總結(jié)

以上就是我所分享的內(nèi)容,有不理解的小可愛可以來私聊我,這初識C語言就到此結(jié)束了,下面我會慢慢的一點點解釋文章來源地址http://www.zghlxwxcb.cn/news/detail-500899.html

到了這里,關于C語言第四課--------要我們一起快樂的學習吧的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • MySQl數(shù)據(jù)庫第四課-------------努力------努力------努力

    MySQl數(shù)據(jù)庫第四課-------------努力------努力------努力

    ?歡迎小可愛們前來借鑒我的gtiee秦老大大 (qin-laoda) - Gitee.com —————————————————————————————————— ???? ????sudo? ????????whoami ???????? who ???????? ????????exit ???????? ???????? reboot、shutdown ???????? ??

    2024年02月13日
    瀏覽(24)
  • solidity進階第四課——在合約中創(chuàng)建新合約

    solidity進階第四課——在合約中創(chuàng)建新合約

    在以太坊上,用戶(外部用戶)可以創(chuàng)建智能合約,智能合約同樣也可以創(chuàng)建新的智能合約。去中心化交易所uniswap就是利用工廠合約(Factory)創(chuàng)建了無數(shù)個幣對合約(Pair)。這一講將講如何在合約中創(chuàng)建合約。 create和create2 有兩種方法可以在合約中創(chuàng)建合約,create和create

    2024年02月01日
    瀏覽(22)
  • 書生·浦語大模型實戰(zhàn)營-第四課筆記

    書生·浦語大模型實戰(zhàn)營-第四課筆記

    期待已久的微調(diào)課 增量預訓練和指令跟隨是兩種微調(diào)模式,即兩種微調(diào)策略。?? 1)增量預訓練 投喂新的領域知識即可,例如書籍、文章、代碼 2)指令跟隨 采用高質(zhì)量對話和問答數(shù)據(jù)進行訓練 兩者是微調(diào)的方法,即算法。 xtuner是一種微調(diào)框架。

    2024年02月21日
    瀏覽(20)
  • Sentinel如何實現(xiàn)對分布式系統(tǒng)的高可用性和流量控制?我們通過源碼一起學習

    Sentinel如何實現(xiàn)對分布式系統(tǒng)的高可用性和流量控制?我們通過源碼一起學習

    前言:大家好,我是小威,24屆畢業(yè)生,在一家滿意的公司實習。本篇文章將詳細介紹Sentinel源碼實現(xiàn)對分布式系統(tǒng)高可用性和流量控制,后續(xù)文章將詳細介紹Sentinel的其他知識。 如果文章有什么需要改進的地方還請大佬不吝賜教 ????。 小威在此先感謝各位大佬啦~~????

    2024年02月06日
    瀏覽(20)
  • Python---第四課--python基礎之開發(fā)環(huán)境介紹(envn)

    Python---第四課--python基礎之開發(fā)環(huán)境介紹(envn)

    說明—簡單來說就是直接在終端中運行解釋器,而不使用文件名的方式來執(zhí)行文件。這種交互式的編程環(huán)境,我們可以稱之為REPL,即讀取(Read)輸入的內(nèi)容,執(zhí)行(Eval)用戶輸入的指令,打?。≒rint)執(zhí)行結(jié)果,然后進行循環(huán)(Loop),Python支持交互式編程。 特點:當你退出

    2023年04月19日
    瀏覽(18)
  • 從零實戰(zhàn)SLAM-第四課(相機成像及常用視覺傳感器)

    從零實戰(zhàn)SLAM-第四課(相機成像及常用視覺傳感器)

    ??在七月算法報的班,老師講的蠻好。好記性不如爛筆頭,關鍵內(nèi)容還是記錄一下吧,課程入口,感興趣的同學可以學習一下。 ------------------------------------------------------------------------------------------------------------------------------- 相機的最基礎模型就是針孔相機模型 針孔相機的

    2024年02月13日
    瀏覽(19)
  • rabbitmq第四課-RabbitMQ高可用集群架構(gòu)詳解以及生產(chǎn)環(huán)境最佳實踐

    rabbitmq第四課-RabbitMQ高可用集群架構(gòu)詳解以及生產(chǎn)環(huán)境最佳實踐

    之前通過單機環(huán)境搭建起來的RabbitMQ服務有一個致命的問題,那就是服務不穩(wěn)定的問題。如果只是單機RabbitMQ的服務崩潰了,那還好,大不了重啟下服務就是了。 但是如果是服務器的磁盤出問題了,那問題就大了。因為消息都是存儲在Queue里的,Queue壞了,意味著消息就丟失了

    2024年02月11日
    瀏覽(22)
  • 從0開始學C++ 第四課:常用C++編輯器和集成開發(fā)環(huán)境(IDE)的使用

    從0開始學C++ 第四課:常用C++編輯器和集成開發(fā)環(huán)境(IDE)的使用

    第四課:常用C++編輯器和集成開發(fā)環(huán)境(IDE)的使用 在這一課中,我們將了解一些流行的C++編輯器和集成開發(fā)環(huán)境(IDE),它們可以簡化C++的編寫、編譯和調(diào)試過程。我們將介紹三種流行的IDE:Visual Studio Code、Eclipse和CLion,并指導如何設置一個簡單的C++項目。 目標 了解不同

    2024年01月22日
    瀏覽(54)
  • 第七十一天學習記錄:對陳正沖編著《C 語言深度解剖》中關于1、2、4,5章作者留下部分問題的學習

    第七十一天學習記錄:對陳正沖編著《C 語言深度解剖》中關于1、2、4,5章作者留下部分問題的學習

    問:有如下代碼。 i 和 j 的值分別是什么,為什么? 答: 在這份代碼中,變量 i 和 j 分別是函數(shù) fun1 和 fun2 的靜態(tài)局部變量。靜態(tài)局部變量在函數(shù)內(nèi)部聲明,但在整個程序生命周期內(nèi)都存在,且只初始化一次(第一次進入函數(shù)時初始化)。 在 main 函數(shù)中,fun1 和 fun2 分別被調(diào)

    2024年02月08日
    瀏覽(33)
  • 選購哪種護眼燈對眼睛好,讓我們一起來看看吧

    選購哪種護眼燈對眼睛好,讓我們一起來看看吧

    在日常生活中,護眼燈已經(jīng)是成為家庭流行使用的照明工具之一,護眼燈對視力是有一定幫助的,會摒棄摁掉一些日常燈具,對眼睛造成傷害的可能性,比如說藍光,對人們的視力有不可逆的損傷,而護眼燈就過濾掉藍光危害,還有頻閃問題等等,護眼燈投射出來的光,會更

    2023年04月08日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包