欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言由淺入深了解變量的應(yīng)用

 更新時間:2022年05月09日 14:48:30   作者:龜π氣功  
這篇文章主要介紹了C語言的變量,變量是C語言語法和語義中一個很重要的知識點(diǎn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

1. 變量的存儲類別

內(nèi)存

  1. 物理內(nèi)存:實(shí)際的存儲設(shè)備
  2. 虛擬內(nèi)存:操作系統(tǒng)虛擬出來的內(nèi)存
  3. 操作系統(tǒng)會在物理內(nèi)存和虛擬內(nèi)存之間做映射。
  4. 在32位系統(tǒng)下,每個進(jìn)程的尋址范圍是4G, 0x00 00 00 00 ~ 0xff ff ff ff
  5. 在寫應(yīng)用程序的時候,我們看到的都是虛擬地址
  6. 在32位操作系統(tǒng)中,虛擬內(nèi)存被分為兩個部分,3G的用戶空間和1G的內(nèi)核空間,其中用戶空間是當(dāng)前進(jìn)程私有的,內(nèi)核空間是一個系統(tǒng)中所有進(jìn)程公有的。

虛擬內(nèi)存分區(qū)(運(yùn)行程序時進(jìn)行分區(qū)) 

  1. 堆:在動態(tài)申請內(nèi)存的時候在堆里開辟內(nèi)存
  2. 棧:主要存放局部變量
  3. 靜態(tài)全局區(qū):(1)未初始化的靜態(tài)全局區(qū):靜態(tài)變量(定義便來嗯的時候,前面加static修飾),或全局變量,沒有初始化的,存在此區(qū)。(2)初始化的靜態(tài)全局區(qū):全局變量,靜態(tài)變量,賦值的存在此區(qū)。
  4. 代碼區(qū):存放程序代碼
  5. 文字常量區(qū):存放常量

2. 全局變量

普通的全局變量

概念:在函數(shù)外部定義的變量

#include<stdio.h>
int a = 10;  // 普通全局變量
int main(){
    printf("a的數(shù)值是%d\n",a);
    return 0;
}

作用范圍:程序的所有地方,只不過用之前需要聲明,例如 extern int a;

生命周期:一直到程序運(yùn)行結(jié)束。

注意:定義普通全局變量時,如果不賦值,默認(rèn)為0

靜態(tài)全局變量

概念:定義全局變量的時候,前面加一個static修飾

作用范圍:static限定了靜態(tài)全局變量的作用范圍,只能在它定義的.c文件中有效

聲明周期:直到程序結(jié)束

注意:不賦值默認(rèn)為0

#include<stdio.h>
static int a = 10;  // 靜態(tài)全局變量,不能跨文件使用
int main(){
    printf("a的數(shù)值是%d\n",a);
    return 0;
}

3. 局部變量

普通局部變量

概念:在函數(shù)內(nèi)部定義的,或者復(fù)合語句中定義的變量

作用范圍:在函數(shù)中定義的變量,在函數(shù)中有效。在復(fù)合語句中定義的,在復(fù)合語句中有效

生命周期:在函數(shù)調(diào)用之前,局部變量不占用空間,調(diào)用的時候才為局部變量開辟空間,函數(shù)結(jié)束了,局部變量就釋放了。復(fù)合語句中也是如此。

#include<stdio.h>
void myfunc(){
    int a = 10;   // 局部變量
    printf("a的數(shù)值是%d\n",a);
    return;
}
int main(){
    myfunc();
  //  printf("a的數(shù)值是%d\n",a); 這條語句是錯誤的,main不可以調(diào)用myfunc中的變量a
    return 0;
}

靜態(tài)局部變量

概念:定義局部變量的時候,前面加static修飾

作用范圍:在它定義的函數(shù)或復(fù)合語句中有效

生命周期:第一次調(diào)用函數(shù)的時候,開辟空間賦值,函數(shù)結(jié)束后,不釋放,以后再調(diào)用函數(shù)的時候,就不再為其開辟空間,也不賦初值,用的是以前哪個變量。

#include<stdio.h>
void myfunc(){
    static int a = 10;   // 靜態(tài)局部變量
    printf("a的數(shù)值是%d\n",a);
    return;
}
int main(){
    myfunc();
    return 0;
}

4. const不可賦值變量

const 關(guān)鍵字用來聲明不可賦值的變量

#include<stdio.h>
int main(){
    const int num;
    num = 7;  // 這條語句必報(bào)錯
    printf("num是%d\n",num);
    return 0;
}

報(bào)錯如下:

既然不可以賦值,那有什么用呢?可以在初始化的時候進(jìn)行賦值!

#include<stdio.h>
int main(){
    const int num = 8;
    printf("num是%d\n",num);
    return 0;
}

5. volatile多變的變量

volatile關(guān)鍵字用來聲明多變的變量,這種變量的內(nèi)容隨時可能被改變,而且這種改變的原因不是我們的語句造成的

到此這篇關(guān)于C語言由淺入深了解變量的應(yīng)用的文章就介紹到這了,更多相關(guān)C語言變量內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Qt/C++編寫視頻監(jiān)控系統(tǒng)之自定義音柱顯示功能

    Qt/C++編寫視頻監(jiān)控系統(tǒng)之自定義音柱顯示功能

    通過音柱控件實(shí)時展示當(dāng)前播放的聲音產(chǎn)生的振幅的大小,得益于音頻播放組件內(nèi)置了音頻振幅的計(jì)算,可以動態(tài)開啟和關(guān)閉,開啟后會對發(fā)送過來的要播放的聲音數(shù)據(jù),這篇文章主要介紹了Qt/C++編寫視頻監(jiān)控系統(tǒng)之自定義音柱顯示功能,需要的朋友可以參考下
    2024-01-01
  • C++ 實(shí)現(xiàn)自定義類型的迭代器操作

    C++ 實(shí)現(xiàn)自定義類型的迭代器操作

    這篇文章主要介紹了C++ 實(shí)現(xiàn)自定義類型的迭代器操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • C++實(shí)現(xiàn)LeetCode(14.最長共同前綴)

    C++實(shí)現(xiàn)LeetCode(14.最長共同前綴)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(14.最長共同前綴),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C++面試八股文之std::string實(shí)現(xiàn)方法

    C++面試八股文之std::string實(shí)現(xiàn)方法

    這篇文章主要介紹了C++面試八股文:std::string是如何實(shí)現(xiàn)的,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • STl中的排序算法詳細(xì)解析

    STl中的排序算法詳細(xì)解析

    全排序即把所給定范圍所有的元素按照大小關(guān)系順序排列。sort采用的是成熟的"快速排序算法"(目前大部分STL版本已經(jīng)不是采用簡單的快速排序,而是結(jié)合內(nèi)插排序算法)
    2013-09-09
  • C++中靜態(tài)存儲區(qū)與棧以及堆的區(qū)別詳解

    C++中靜態(tài)存儲區(qū)與棧以及堆的區(qū)別詳解

    本篇文章是對C++中靜態(tài)存儲區(qū)與棧以及堆的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C++實(shí)現(xiàn)簡單單向鏈表

    C++實(shí)現(xiàn)簡單單向鏈表

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)簡單單向鏈表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • C語言實(shí)現(xiàn)關(guān)機(jī)小程序

    C語言實(shí)現(xiàn)關(guān)機(jī)小程序

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)關(guān)機(jī)小程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • C語言數(shù)組全面詳細(xì)講解

    C語言數(shù)組全面詳細(xì)講解

    數(shù)組是一組有序的數(shù)據(jù)的集合,數(shù)組中元素類型相同,由數(shù)組名和下標(biāo)唯一地確定,數(shù)組中數(shù)據(jù)不僅數(shù)據(jù)類型相同,而且在計(jì)算機(jī)內(nèi)存里連續(xù)存放,地址編號最低的存儲單元存放數(shù)組的起始元素,地址編號最高的存儲單元存放數(shù)組的最后一個元素
    2022-05-05
  • C語言通過深度優(yōu)先搜索來解電梯問題和N皇后問題的示例

    C語言通過深度優(yōu)先搜索來解電梯問題和N皇后問題的示例

    深度優(yōu)先搜索即是對一個新發(fā)現(xiàn)的節(jié)點(diǎn)上如果還關(guān)聯(lián)未探測到的邊,就沿此邊探測下去,直到發(fā)現(xiàn)從原點(diǎn)可達(dá)的所有點(diǎn)為止,這里我們就來展示C語言通過深度優(yōu)先搜索來解電梯問題和N皇后問題的示例
    2016-06-06

最新評論