最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C 語言基礎(chǔ)之C語言的常見關(guān)鍵字

 更新時間:2021年09月14日 16:30:29   作者:吞吞吐吐大魔王  
C語言中有一些預(yù)先定義的字符串,他們本身被賦予了自身的功能。并且我們在定義變量的時候,不能去搶他們的名字來用。他們就是今天的主角:關(guān)鍵字,下面文章將給大家做詳細介紹

首先我們簡單的和這些關(guān)鍵字見見面(被高亮的關(guān)鍵字是今天要介紹的)

這其中有大家熟知的數(shù)據(jù)類型:int,char,float,double

也有控制語句用到的:iffor,do

還有一些就是今天主要介紹的關(guān)鍵字。

至于還有一些新增的關(guān)鍵字,以上表格未曾提到,大家如果想去了解,可自行查找。

個別術(shù)語介紹(可先跳過,后文如若遇到不懂,可回來了解)

自動變量:指的是局部作用域變量,具體來說即是在控制流進入變量作用域時系統(tǒng)自動為其分配存空間, 并在離開作用域時釋放空間的一類變量

存儲類:是C語言與C++語言的標準中,變量與函數(shù)的可訪問性(即作用域范圍)與生存期

寄存器:寄存器是CPU內(nèi)部用來存放數(shù)據(jù)的一些小型存儲區(qū)域,用來暫時存放參與運算的數(shù)據(jù)和運算結(jié)果。

​ 計算機中的數(shù)據(jù)可以存儲到:寄存器,高速緩存器,內(nèi)存,硬盤,網(wǎng)盤

​ (以上存儲從左到右按照,內(nèi)存越來越大,造假越來越低,傳輸速度越來越慢排序)

​1、auto

auto:聲明自動變量,一般都省略

​ 默認情況下,在代碼塊內(nèi)聲明的變量都是自動變量,但亦可用自動變量的關(guān)鍵字auto明確標識存儲類

代碼如下:

int a=0;
//上下兩個變量其實相同,只不過上面省略了auto
auto int a=0;

2、register

register:聲明寄存器變量

​ 這個關(guān)鍵字定義變量后,會請求編譯器盡可能的將變量存在CPU內(nèi)部寄存器中,而不是通過內(nèi)存尋 址訪問,以提高效率。(因為寄存器很小,如果定義了很多register變量,可能會超過CPU的寄存 器個數(shù),超過容量,故變量不是一定會存入寄存器內(nèi))

3、signed和unsigned

signed:有符號的(一般定義常量默認為signed)-------可以存儲正數(shù)和負數(shù)

unsigned:無符號的-----不能存儲負數(shù)

signed int a=10; //一般默認為signed,故只要寫成:int a=10;
    
unsigned float=-75.3------>錯誤定義
    
float=-75.3------>正確定義

signed float=-75.3------->正確定義  

4、typedef

typedef:類型重定義-------一般對于太過復(fù)雜的數(shù)據(jù)類型,可以重新定義一個簡單的或有辨識度的使用

​ typedef <數(shù)據(jù)類型> <你取的類型名>

unsigned long int a=10;  //數(shù)據(jù)類型過于復(fù)雜,可以使用typedef重新定義
    
typedef unsigned long int u_l_int;

u_l_int a=10;          //與unsigned long int a=10等價

5、extern

extern:用在變量或者函數(shù)的聲明前,用來說此變量/函數(shù)是在別處定義的,要在此處引用

​ 默認情況下全局變量只能在定義它的文件中使用(從定義該全局變量開始到所在文件的文件尾), 但如果在另一個文件中將這個變量聲明為外部變量,那么這個變量的作用域?qū)⒈粩U展到另外一個文 件中。

代碼如下:

先在源文件中創(chuàng)建項目名為:main.c

#inlcude <stdio.h>
extern int a;
extern int Add(int x,int y);
int main()
{
    
 printf("%d\n",a);
    printf("%d\n",Add(3,2));
}

再在源文件中創(chuàng)建項目名為:test.c-------作為全局變量,函數(shù)定義的文件

int a=10;//全局變量
int Add(int x,int y)//
{
 return x+y;//函數(shù)定義
}

結(jié)果會輸出10,5

6、拓展

變量的聲明有兩種情況

  •  一種是需要建立存儲空間的。例如:int a 在聲明的時候就已經(jīng)建立了存儲空間。
  •  另一種是不需要建立存儲空間的,通過使用extern關(guān)鍵字聲明變量名而不定義它。

例如:extern int a 其中變量 a 可以在別的文件中定義的。
​ extern int i; //聲明,不是定義
​ int i; //聲明,也是定義

定義分配存儲空間,而聲明不會

如何區(qū)分聲明還是變量

extern告訴編譯器變量在其他地方定義了
如果聲明有初始化式,就被當(dāng)作定義,即使前面加了extern
函數(shù)的聲明和定義區(qū)別比較簡單,帶有{ }的就是定義,否則就是聲明
沒有extern關(guān)鍵字的都是變量的定義

static:

static:聲明靜態(tài)變量

  • 修飾局部變量 使其生命周期變長(本質(zhì)上改變了變量的存儲類型)
  • 修飾全局變量 改變了全局變量的作用域,讓靜態(tài)的全局變量只能在自己的源文件內(nèi)使用全局變量在其他源文件內(nèi)部可以被使用,是因為全局變量具有外部鏈接屬性。但是被static修飾后,就變成了內(nèi)部鏈接屬性,其他源文件就不能鏈接到這個靜態(tài)的全局變量
  • 修飾函數(shù) 改變了函數(shù)的鏈接屬性,將函數(shù)的外部鏈接屬性變成了內(nèi)部鏈接屬性,使得函數(shù)只能在自己所在的源文件內(nèi)部使用

解釋1,代碼如下:

#include <stdio.h>
void Add(int x)
{
    static int a=2;
    a++;
    printf("%d ",x+a);
}
int main()
{
    int i=0;
    for(i=0;i<3;i++)
    {
        Add(1);
    }
    return 0;
}

結(jié)果是4 5 6,大家知道int a=2是一個自動變量,在他作用域結(jié)束后,空間就會釋放掉,a的值不能保存。

而加上static改變了他的生命周期,使他在整個項目結(jié)束前的一直存在,所以a的值會不斷迭代

解釋2,3,代碼如下:(引用extern的內(nèi)容,大家可以自行對比)

先在源文件中創(chuàng)建項目名為:main.c

##inlcude <stdio.h>
extern int a;
extern int Add(int x,int y);
int main()
{
    
 printf("%d\n",a);
    printf("%d\n",Add(3,2));
}

再在源文件中創(chuàng)建項目名為:test.c-------作為全局變量,函數(shù)定義的文件

static int a=10;//全局變量
static int Add(int x,int y)
{
 return x+y;//函數(shù)定義
}

產(chǎn)生結(jié)果如下:

最后注意:#define和#include不是關(guān)鍵字,是預(yù)處理指令

到此這篇關(guān)于C 語言基礎(chǔ)之C語言的常見關(guān)鍵字的文章就介紹到這了,更多相關(guān)C語言的常見關(guān)鍵字內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++基于EasyX實現(xiàn)簡單掃雷游戲

    C++基于EasyX實現(xiàn)簡單掃雷游戲

    這篇文章主要為大家詳細介紹了C++基于EasyX實現(xiàn)簡單掃雷游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • 基于MFC實現(xiàn)單個文檔的文件讀寫

    基于MFC實現(xiàn)單個文檔的文件讀寫

    這篇文章主要為大家詳細介紹了如何基于MFC實現(xiàn)單個文檔的文件讀寫功能,文中的示例代碼講解詳細,對我們學(xué)習(xí)有一定幫助,感興趣的可以了解一下
    2022-07-07
  • C++圖文并茂講解類型轉(zhuǎn)換函數(shù)

    C++圖文并茂講解類型轉(zhuǎn)換函數(shù)

    類型轉(zhuǎn)換(type cast),是高級語言的一個基本語法。它被實現(xiàn)為一個特殊的運算符,以小括號內(nèi)加上類型名來表示,接下來讓我們一起來詳細了解
    2022-05-05
  • 使用Qt封裝一個發(fā)送http請求通用類

    使用Qt封裝一個發(fā)送http請求通用類

    這篇文章主要為大家詳細介紹了如何使用Qt封裝一個通用類,可以通過QNetworkRequest和QNetworkReply進行http請求,感興趣的可以了解一下
    2024-12-12
  • C語言?棧與數(shù)組的實現(xiàn)詳解

    C語言?棧與數(shù)組的實現(xiàn)詳解

    棧(stack)又名堆棧,它是一種運算受限的線性表。限定僅在表尾進行插入和刪除操作的線性表。這一端被稱為棧頂,相對地,把另一端稱為棧底。向一個棧插入新元素又稱作進棧、入?;驂簵?,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素
    2022-04-04
  • C語言實現(xiàn)文件讀寫操作的幾種常用方法

    C語言實現(xiàn)文件讀寫操作的幾種常用方法

    C語言提供了一系列文件操作函數(shù),使得我們可以通過程序?qū)ξ募M行讀寫操作,本文主要介紹了C語言實現(xiàn)文件讀寫操作的幾種常用方法,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • Cocos2d-x 3.x入門教程(二):Node節(jié)點類

    Cocos2d-x 3.x入門教程(二):Node節(jié)點類

    這篇文章主要介紹了Cocos2d-x 3.x入門教程(二):Node節(jié)點類,本文對Node節(jié)點類做了一個簡明講解及Node類提供的函數(shù)做了說明,需要的朋友可以參考下
    2014-11-11
  • C++處理圖存儲的方式分享

    C++處理圖存儲的方式分享

    這篇文章主要介紹了C++處理圖存儲的方式分享,文章圍繞鄰接矩陣、鄰接表、鏈式前向的主題展開詳細內(nèi)容,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-03-03
  • 深入C++實現(xiàn)函數(shù)itoa()的分析

    深入C++實現(xiàn)函數(shù)itoa()的分析

    本篇文章是對C++實現(xiàn)函數(shù)itoa()進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C 語言基礎(chǔ)之初識 C 語言常量

    C 語言基礎(chǔ)之初識 C 語言常量

    C語言中的常量分為以下幾種:字面常量、const修飾的常變量、#define定義的標識符常量等,下面我們將詳細對C語言這幾個常量做介紹,感興趣的小伙伴可以參考一下
    2021-09-09

最新評論

玉树县| 巴彦县| 马尔康县| 定南县| 辽源市| 贡嘎县| 稷山县| 湘潭县| 循化| 高青县| 河北省| 牙克石市| 镇雄县| 鹤岗市| 土默特右旗| 洪洞县| 大名县| 清河县| 额敏县| 军事| 阿拉尔市| 六安市| 瑞昌市| 原阳县| 漠河县| 东乌| 宁城县| 石林| 玛沁县| 西林县| 广丰县| 建瓯市| 静乐县| 景洪市| 怀化市| 五常市| 西充县| 抚远县| 若尔盖县| 永修县| 嘉义市|