一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C/C++ - C語言的變量與常量 字符字符串與轉義字符詳解

C語言的變量與常量 字符字符串與轉義字符詳解

2022-01-24 14:18HAORANCHIDOUZI C/C++

這篇文章主要介紹了詳解C語言的變量與常量 字符字符串與轉義字符,包括其之間的區別是C語言入門學習中的基礎知識,需要的朋友可以參考下

 

一.變量

 

1.1定義變量的方法

C語言的變量與常量 字符字符串與轉義字符詳解

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

 

1.2變量的分類

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

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

C語言的變量與常量 字符字符串與轉義字符詳解

變量被定義a和第一個輸出函數printf在同一個代碼塊中,所以輸出函數可以成功的輸出代碼a的值0。但變量b被定義的代碼塊和第二個輸出函數printf不在同一個代碼塊中,變量b只在其被定義的代碼塊中存在,在第二個輸出函數printf所在的代碼塊中不存在,所以編譯器會報錯,未定義標識符b。

C語言的變量與常量 字符字符串與轉義字符詳解

如果是上圖這種情況,變量a的值是可以被輸出的,因為輸出函數printf仍在變量a所在的這個整體的代碼塊(大括號之中)。

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

全局變量:被定義在代碼塊之外的變量,但要保證在#include<stdio.h>之后才定義,作用域為全體范圍,整個程序的作用域該變量均存在。 

C語言的變量與常量 字符字符串與轉義字符詳解

如上圖該程序的輸出結果為10。但當代碼塊中出現和全局變量同名的變量時,全局變量的值會被覆蓋,如下圖。會將代碼塊中局部變量的值覆蓋全局變量的值,但僅在該代碼塊中起到這樣的效果,如果其它代碼塊中沒有和全局變量同名的局部變量,仍以全局變量的值為該變量的值。

C語言的變量與常量 字符字符串與轉義字符詳解

 

1.3變量的使用

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

C語言的變量與常量 字符字符串與轉義字符詳解

輸入該變量的值時候,要在該變量前面加&符號,&符號的意思是取地址,又叫取地址符號。

 

二.常量

C語言中常量分為字面常量(包括字符常量,const 修飾的常變量,#define定義的標識符常量,枚舉常量四種常量。

 

2.1字面常量

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

C語言的變量與常量 字符字符串與轉義字符詳解

 

 2.2 const修飾的常變量

C語言的變量與常量 字符字符串與轉義字符詳解

如上圖所示,對在定義一個變量的時候在前面加上const代表該變量是不可修改的。但該變量本質上還是作為一個變量存在,又被稱為常變量。例如在定義數組的時候只能使用常量,假如使用了const修飾的常變量,大部分編譯器會報錯(因為在C99標準之前,變長數組,不允許用變量指定數組大小)。如下圖所示,定義數組大小只可以用常量!!

C語言的變量與常量 字符字符串與轉義字符詳解

 

 2.3#define定義的標識符常量

 C語言的變量與常量 字符字符串與轉義字符詳解

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

 

2.4 枚舉常量

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

C語言的變量與常量 字符字符串與轉義字符詳解

定義枚舉類型的時候如上圖所示,枚舉這種類型可能的取值就是枚舉常量。枚舉常量和枚舉常量之前用逗號隔開,所有的枚舉常量被放在一個大括號中,在該大括號的末尾用分號作為結束。 

 

三.字符和字符串

 

3.1 定義

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

C語言的變量與常量 字符字符串與轉義字符詳解

 

 3.2字符串的應用

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

C語言的變量與常量 字符字符串與轉義字符詳解

字符串還可以用strlen函數去計算長度,但在使用strlen計算字符串長度之前,去引用頭函數#include<string.h>。在計算字符串長度的時候每一個字符是1長度,但轉義字符也是一個字符,整體算一個長度。在用strlen函數計算長度的時候""為終止的位置,字符串后自帶一個"",字符后需要人為添加"",否則在計算字符長度的時候,會一直到內存中出現""的時候才會停止,這樣的話字符的長度便成為了一個隨機數,顯然是不行的,所以要人為添加""。

C語言的變量與常量 字符字符串與轉義字符詳解

C語言的變量與常量 字符字符串與轉義字符詳解

C語言的變量與常量 字符字符串與轉義字符詳解

常用的轉義字符如上圖,ddd的意識為后面跟一個,兩個或者三個8以下的數字時,需要將整體八進制轉換為十進制,再根據ASCII碼值輸出ASCI碼值對應的字符。xdd的意思為后面x跟著兩個十六進制的數字,整體為一個轉義字符,將十六進制的轉化為十進制,再輸出其對應的字符。

 

3.3轉義字符

即在C語言中,有時間一些字符的意思可能被編譯器曲解,所以這時候需要用轉義字符來轉變原來的意思,得到我們想要的意思。

C語言的變量與常量 字符字符串與轉義字符詳解

C語言的變量與常量 字符字符串與轉義字符詳解

例如在上圖中,我們想要打印test.c這個文件的位置,但結果缺不盡人意,因為兩個 被識別為轉義字符,意識是縮進四格。104被識別為DDD的形式,104被當作一個八進制的數字,在轉化為十進制的數后輸出了其ASCII碼值對應的字符――大寫字母D。舉例,如下圖所示DDD和XDD的情況。

C語言的變量與常量 字符字符串與轉義字符詳解

C語言的變量與常量 字符字符串與轉義字符詳解

如上圖所示,DDD先將其轉化為十進制,71轉化為十進制是57,而57對應的ASCII值對應的字符為9,所以打印輸出了9.XDD同理先將轉化為十進制,x62轉化為10進制是98,而98對應的ASCII值對應的字符為b。故printf函數打印了小寫字母b。

如果不想造成上上上圖的困擾,正確的打印該文件在計算機中的存儲位置,這時候就需要在每個再加一個,對其進行轉移,便能正確輸出了,如下圖所示。

C語言的變量與常量 字符字符串與轉義字符詳解

C語言的變量與常量 字符字符串與轉義字符詳解

 

四.注釋

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

C語言的變量與常量 字符字符串與轉義字符詳解

上圖為C語言的注釋風格,缺陷是不能進行嵌套注釋,會在遇到第一個*/時候注釋停止。

C語言的變量與常量 字符字符串與轉義字符詳解

上圖是C++語言的注釋風格,//后整行皆為注釋內容,也是現在比較流行的注釋方式。 

 

總結

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注服務器之家的更多內容!

原文鏈接:https://blog.csdn.net/HAORANCHIDOUZI/article/details/120816092

延伸 · 閱讀

精彩推薦
  • C/C++C/C++經典實例之模擬計算器示例代碼

    C/C++經典實例之模擬計算器示例代碼

    最近在看到的一個需求,本以為比較簡單,但花了不少時間,所以下面這篇文章主要給大家介紹了關于C/C++經典實例之模擬計算器的相關資料,文中通過示...

    jia150610152021-06-07
  • C/C++C++之重載 重定義與重寫用法詳解

    C++之重載 重定義與重寫用法詳解

    這篇文章主要介紹了C++之重載 重定義與重寫用法詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下...

    青山的青6062022-01-04
  • C/C++C語言實現電腦關機程序

    C語言實現電腦關機程序

    這篇文章主要為大家詳細介紹了C語言實現電腦關機程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    xiaocaidayong8482021-08-20
  • C/C++深入理解goto語句的替代實現方式分析

    深入理解goto語句的替代實現方式分析

    本篇文章是對goto語句的替代實現方式進行了詳細的分析介紹,需要的朋友參考下...

    C語言教程網7342020-12-03
  • C/C++c++ 單線程實現同時監聽多個端口

    c++ 單線程實現同時監聽多個端口

    這篇文章主要介紹了c++ 單線程實現同時監聽多個端口的方法,幫助大家更好的理解和學習使用c++,感興趣的朋友可以了解下...

    源之緣11542021-10-27
  • C/C++詳解c語言中的 strcpy和strncpy字符串函數使用

    詳解c語言中的 strcpy和strncpy字符串函數使用

    strcpy 和strcnpy函數是字符串復制函數。接下來通過本文給大家介紹c語言中的strcpy和strncpy字符串函數使用,感興趣的朋友跟隨小編要求看看吧...

    spring-go5642021-07-02
  • C/C++C語言中炫酷的文件操作實例詳解

    C語言中炫酷的文件操作實例詳解

    內存中的數據都是暫時的,當程序結束時,它們都將丟失,為了永久性的保存大量的數據,C語言提供了對文件的操作,這篇文章主要給大家介紹了關于C語言中文件...

    針眼_6702022-01-24
  • C/C++學習C++編程的必備軟件

    學習C++編程的必備軟件

    本文給大家分享的是作者在學習使用C++進行編程的時候所用到的一些常用的軟件,這里推薦給大家...

    謝恩銘10102021-05-08
主站蜘蛛池模板: 久久er99热精品一区二区 | 免费xxxxx大片在线观看影视 | 被黑人同学彻底征服全文小说阅读 | 日本一区二区三区在线 视频 | 好吊操这里有精品 | 国内精品一区二区三区东京 | 色综合合久久天天综合绕视看 | 26uuu久久 | 亚洲va久久久噜噜噜久久狠狠 | 成人毛片高清视频观看 | 亚洲AV 日韩 国产 有码 | leslessexvideos日本| 亚洲欧美专区精品伊人久久 | 日韩毛片高清在线看 | 欧美一区二区三区四区五区六区 | 户外露出野战hd | 日本嫩小xxxxhd | 免费观看一级欧美在线视频 | 深夜福利在线播放 | 日本免费v片一二三区 | 青草久久影院 | 天天看黄 | 欧美三茎同入 | 日韩精选 | 好湿好紧太硬了我太爽了网站 | 逼水真多| 国产一区二区三区在线观看视频 | 日本三级成人中文字幕乱码 | 30分钟的高清视频在线观看 | 四虎影视永久在线观看 | 国产香蕉视频在线观看 | 猛h辣h高h文湿校园1v1 | 精品国产91久久久久久久 | 国产成年人 | www.青青草原 | 国产香蕉97碰碰在线视频 | 国产真实一区二区三区 | 九九大香尹人视频免费 | 果冻传媒和91制片厂网站软件 | poren18日本老师hd | 闺蜜高h |