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

C語(yǔ)言的變量與常量 字符字符串與轉(zhuǎn)義字符詳解

 更新時(shí)間:2021年10月18日 09:43:30   作者:HAORANCHIDOUZI  
這篇文章主要介紹了詳解C語(yǔ)言的變量與常量 字符字符串與轉(zhuǎn)義字符,包括其之間的區(qū)別是C語(yǔ)言入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下

一.變量

1.1定義變量的方法

如圖中所示,變量可被定義為各種數(shù)據(jù)類型,如int 整型 char字符數(shù)據(jù)類型,short短整型,float單精度浮點(diǎn)數(shù),double雙精度浮點(diǎn)數(shù)等等。一般在變量定義后,需給變量賦值,如圖中對(duì)所有變量給與了0的賦值,這也是一個(gè)良好的代碼習(xí)慣。

1.2變量的分類

變量分為局部變量和全局變量。

局部變量:定義在代碼塊內(nèi)部的變量,一個(gè)大括號(hào)中所有代碼便是一個(gè)代碼塊,局部變量只在代碼塊中存在和生效,如下圖中這種情況

變量被定義a和第一個(gè)輸出函數(shù)printf在同一個(gè)代碼塊中,所以輸出函數(shù)可以成功的輸出代碼a的值0。但變量b被定義的代碼塊和第二個(gè)輸出函數(shù)printf不在同一個(gè)代碼塊中,變量b只在其被定義的代碼塊中存在,在第二個(gè)輸出函數(shù)printf所在的代碼塊中不存在,所以編譯器會(huì)報(bào)錯(cuò),未定義標(biāo)識(shí)符b。

如果是上圖這種情況,變量a的值是可以被輸出的,因?yàn)檩敵龊瘮?shù)printf仍在變量a所在的這個(gè)整體的代碼塊(大括號(hào)之中)。

如上的變量a與變量b,被定義在某一個(gè)代碼塊中的變量,即為局部變量。

全局變量:被定義在代碼塊之外的變量,但要保證在#include<stdio.h>之后才定義,作用域?yàn)槿w范圍,整個(gè)程序的作用域該變量均存在。 

如上圖該程序的輸出結(jié)果為10。但當(dāng)代碼塊中出現(xiàn)和全局變量同名的變量時(shí),全局變量的值會(huì)被覆蓋,如下圖。會(huì)將代碼塊中局部變量的值覆蓋全局變量的值,但僅在該代碼塊中起到這樣的效果,如果其它代碼塊中沒(méi)有和全局變量同名的局部變量,仍以全局變量的值為該變量的值。

1.3變量的使用

先定義變量,然后變量可以參加加減乘除等運(yùn)算,也可以使用printf輸出函數(shù)打印該變量的值,或者使用scanf輸入函數(shù),從外部輸入對(duì)該變量進(jìn)行賦值。

輸入該變量的值時(shí)候,要在該變量前面加&符號(hào),&符號(hào)的意思是取地址,又叫取地址符號(hào)。

二.常量

C語(yǔ)言中常量分為字面常量(包括字符常量,const 修飾的常變量,#define定義的標(biāo)識(shí)符常量,枚舉常量四種常量。

2.1字面常量

字面常量即用數(shù)字和字符組成的常量,如下圖所示。

 2.2 const修飾的常變量

如上圖所示,對(duì)在定義一個(gè)變量的時(shí)候在前面加上const代表該變量是不可修改的。但該變量本質(zhì)上還是作為一個(gè)變量存在,又被稱為常變量。例如在定義數(shù)組的時(shí)候只能使用常量,假如使用了const修飾的常變量,大部分編譯器會(huì)報(bào)錯(cuò)(因?yàn)樵贑99標(biāo)準(zhǔn)之前,變長(zhǎng)數(shù)組,不允許用變量指定數(shù)組大小)。如下圖所示,定義數(shù)組大小只可以用常量!!

 2.3#define定義的標(biāo)識(shí)符常量

 

如上圖所示可以用#define+常量名+具體大小的形式定義標(biāo)識(shí)符常量,上圖的MAX便是這么定義的,在代碼習(xí)慣中一般用大寫字母。

2.4 枚舉常量

枚舉的意思是可以一一列舉,如生活中的性別(男性和女性),人種(黃種人,白種人和黑種人),這樣種類比較少的常量可以用枚舉類型,作為枚舉常量。

定義枚舉類型的時(shí)候如上圖所示,枚舉這種類型可能的取值就是枚舉常量。枚舉常量和枚舉常量之前用逗號(hào)隔開(kāi),所有的枚舉常量被放在一個(gè)大括號(hào)中,在該大括號(hào)的末尾用分號(hào)作為結(jié)束。 

三.字符和字符串

3.1 定義

由單引號(hào)引起的單個(gè)字符或者字母被成為字符,如'a'  'b'均為字符,由雙引號(hào)引起的一串字符被成為字符串如"abc" "sfc"都被成為字符串,""也是字符串的一種,被成為空字符串。如下圖所示,'a' '#'為字符,"abc","a","",均為字符串。

 3.2字符串的應(yīng)用

可以將字符串放在在字符數(shù)組中,如定義一個(gè)字符數(shù)組 char arr1[]="abc";這里的arr為該字符數(shù)組的名稱。但不能將字符串放在一個(gè)變量中,如char ch="abc";這樣的形式是錯(cuò)誤的。

字符串還可以用strlen函數(shù)去計(jì)算長(zhǎng)度,但在使用strlen計(jì)算字符串長(zhǎng)度之前,去引用頭函數(shù)#include<string.h>。在計(jì)算字符串長(zhǎng)度的時(shí)候每一個(gè)字符是1長(zhǎng)度,但轉(zhuǎn)義字符也是一個(gè)字符,整體算一個(gè)長(zhǎng)度。在用strlen函數(shù)計(jì)算長(zhǎng)度的時(shí)候'\0'為終止的位置,字符串后自帶一個(gè)'\0',字符后需要人為添加'\0',否則在計(jì)算字符長(zhǎng)度的時(shí)候,會(huì)一直到內(nèi)存中出現(xiàn)'\0'的時(shí)候才會(huì)停止,這樣的話字符的長(zhǎng)度便成為了一個(gè)隨機(jī)數(shù),顯然是不行的,所以要人為添加'\0'。

常用的轉(zhuǎn)義字符如上圖,\ddd的意識(shí)為后面跟一個(gè),兩個(gè)或者三個(gè)8以下的數(shù)字時(shí),需要將整體八進(jìn)制轉(zhuǎn)換為十進(jìn)制,再根據(jù)ASCII碼值輸出ASCI碼值對(duì)應(yīng)的字符。\xdd的意思為后面\x跟著兩個(gè)十六進(jìn)制的數(shù)字,整體為一個(gè)轉(zhuǎn)義字符,將十六進(jìn)制的轉(zhuǎn)化為十進(jìn)制,再輸出其對(duì)應(yīng)的字符。

3.3轉(zhuǎn)義字符

即在C語(yǔ)言中,有時(shí)間一些字符的意思可能被編譯器曲解,所以這時(shí)候需要用轉(zhuǎn)義字符來(lái)轉(zhuǎn)變?cè)瓉?lái)的意思,得到我們想要的意思。

例如在上圖中,我們想要打印test.c這個(gè)文件的位置,但結(jié)果缺不盡人意,因?yàn)閮蓚€(gè)\t被識(shí)別為轉(zhuǎn)義字符,意識(shí)是縮進(jìn)四格。\104被識(shí)別為\DDD的形式,104被當(dāng)作一個(gè)八進(jìn)制的數(shù)字,在轉(zhuǎn)化為十進(jìn)制的數(shù)后輸出了其ASCII碼值對(duì)應(yīng)的字符——大寫字母D。舉例,如下圖所示\DDD和\XDD的情況。

如上圖所示,\DDD先將其轉(zhuǎn)化為十進(jìn)制,\071轉(zhuǎn)化為十進(jìn)制是57,而57對(duì)應(yīng)的ASCII值對(duì)應(yīng)的字符為9,所以打印輸出了9.\XDD同理先將轉(zhuǎn)化為十進(jìn)制,\x62轉(zhuǎn)化為10進(jìn)制是98,而98對(duì)應(yīng)的ASCII值對(duì)應(yīng)的字符為b。故printf函數(shù)打印了小寫字母b。

如果不想造成上上上圖的困擾,正確的打印該文件在計(jì)算機(jī)中的存儲(chǔ)位置,這時(shí)候就需要在每個(gè)\再加一個(gè)\,對(duì)其進(jìn)行轉(zhuǎn)移,便能正確輸出了,如下圖所示。

四.注釋

注釋分為C注釋方式和C++注釋方式。//C99之后引入的注釋方式 ---> C++的注釋風(fēng)格/*  C99之前C語(yǔ)言的注釋方式 --> C的注釋風(fēng)格, 缺陷是不支持嵌套注釋*/

上圖為C語(yǔ)言的注釋風(fēng)格,缺陷是不能進(jìn)行嵌套注釋,會(huì)在遇到第一個(gè)*/時(shí)候注釋停止。

上圖是C++語(yǔ)言的注釋風(fēng)格,//后整行皆為注釋內(nèi)容,也是現(xiàn)在比較流行的注釋方式。 

總結(jié)

本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • C語(yǔ)言實(shí)現(xiàn)班級(jí)檔案管理系統(tǒng)課程設(shè)計(jì)

    C語(yǔ)言實(shí)現(xiàn)班級(jí)檔案管理系統(tǒng)課程設(shè)計(jì)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)班級(jí)檔案管理系統(tǒng)課程設(shè)計(jì),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • 淺析C語(yǔ)言位域和位段

    淺析C語(yǔ)言位域和位段

    以下是對(duì)C語(yǔ)言中的位域和位段進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下
    2013-08-08
  • Cocos2d-x觸摸事件實(shí)例

    Cocos2d-x觸摸事件實(shí)例

    這篇文章主要介紹了Cocos2d-x觸摸事件實(shí)例,本文代碼中包含大量注釋來(lái)說(shuō)明Cocos2d-x中的觸摸事件使用示例,需要的朋友可以參考下
    2014-09-09
  • C++的靜態(tài)成員變量和靜態(tài)成員函數(shù)詳解

    C++的靜態(tài)成員變量和靜態(tài)成員函數(shù)詳解

    這篇文章主要為大家介紹了C++的靜態(tài)成員變量和靜態(tài)成員函數(shù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-12-12
  • Qt控件點(diǎn)擊消息獲取的方法詳解

    Qt控件點(diǎn)擊消息獲取的方法詳解

    本文將利用Qt中的QLabel、QPushButton這兩個(gè)控件,為大家詳細(xì)介紹一下Qt控件點(diǎn)擊消息獲取的方法,文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2022-06-06
  • VC判斷進(jìn)程是否具有administrator權(quán)限的方法

    VC判斷進(jìn)程是否具有administrator權(quán)限的方法

    這篇文章主要介紹了VC判斷進(jìn)程是否具有administrator權(quán)限的方法,在Windows應(yīng)用程序設(shè)計(jì)中具有一定的實(shí)用價(jià)值,需要的朋友可以參考下
    2014-10-10
  • C語(yǔ)言線性代數(shù)算法實(shí)現(xiàn)矩陣示例代碼

    C語(yǔ)言線性代數(shù)算法實(shí)現(xiàn)矩陣示例代碼

    這篇文章主要為大家介紹了使用C語(yǔ)言線性代數(shù)的算法來(lái)實(shí)現(xiàn)矩陣示例代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-10-10
  • C++ 二維數(shù)組傳參的四種方式

    C++ 二維數(shù)組傳參的四種方式

    C++的二維數(shù)組里面,通過(guò)用數(shù)組名傳參,傳過(guò)去后數(shù)組名會(huì)退化成一個(gè)一維數(shù)組指針,所以C++的函數(shù)參數(shù)不能像C語(yǔ)言一樣去寫,本文主要介紹了C++ 二維數(shù)組傳參的四種方式,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-04-04
  • C++實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)框架SimpleNN的詳細(xì)過(guò)程

    C++實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)框架SimpleNN的詳細(xì)過(guò)程

    本來(lái)自己想到用C++實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)主要是想強(qiáng)化一下編碼能力并入門深度學(xué)習(xí),對(duì)C++實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)框架SimpleNN的詳細(xì)過(guò)程感興趣的朋友一起看看吧
    2021-08-08
  • C語(yǔ)言進(jìn)階教程之函數(shù)指針詳解

    C語(yǔ)言進(jìn)階教程之函數(shù)指針詳解

    函數(shù)指針是一個(gè)指針變量,它可以存儲(chǔ)函數(shù)的地址,然后使用函數(shù)指針,下面這篇文章主要給大家介紹了關(guān)于C語(yǔ)言進(jìn)階教程之函數(shù)指針的相關(guān)資料,需要的朋友可以參考下
    2022-04-04

最新評(píng)論

离岛区| 福海县| 大名县| 贺州市| 新蔡县| 新绛县| 台中市| 屯门区| 德安县| 如东县| 体育| 永平县| 忻州市| 全椒县| 惠东县| 潮州市| 扎鲁特旗| 囊谦县| 宜城市| 长白| 宝应县| 墨脱县| 宜昌市| 金塔县| 都匀市| 沅江市| 班玛县| 绥棱县| 洛阳市| 迁安市| 龙江县| 泰安市| 临清市| 石阡县| 宝兴县| 垦利县| 嘉鱼县| 泗水县| 左云县| 易门县| 南岸区|