日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

int指针初始化_C++:变量,指针,引用const,extern,using,typedef,decltype关键字

發布時間:2025/3/15 c/c++ 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 int指针初始化_C++:变量,指针,引用const,extern,using,typedef,decltype关键字 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

算數類型

基本類型就是int,double, long long,這一系列東西。

其中有個特殊的類型是wchar,這個符號代表本機上支持的最大的擴展字符級的字符。

(有的機器上有些擴展字符級比較大,所以需要更長的擴展字符來處理)

一般情況下,浮點數就用double就好了。

每一種字符還被分為了char和signed char,unsigned char等幾種,其中signed會比unsigned少一位表示區間,一般來說是-1和0,然后向兩側蔓延。

類型轉化

沒什么好說的,最常見的就是越界導致的數值丟失,以及不合理的類型的賦值。需要人工去解決。

字面值常量

字面值代表賦給對手一個值,比如可以給int賦給以0打頭的一個值,表示八進制,也可以給0x表示十六進制。

但要注意的是十六進制最后也是要被翻譯成二進制存儲的,所以最大值不能超過int的限制。

同時,‘a'代表字符,"afsd"代表一個字符串,字符串的實際存儲中有一位是‘0’。

變量

變量其實是一種對象。

變量可以分為初始化和賦值兩個部分。這兩個步驟本身就難解難分。

只需要記住,變量通常都有自己默認的賦值變量,如果在初始化的時候指定特有的值,那也是初始化,因為這個過程中不涉及變量值的擦除。

初始化的定式其實很標準,那就是,=與數值的直接組合,=與{}包裹的數值的組合,直接在變量名后加()的組合。

變量聲明與定義的關系

聲明和定義可以分開的,這主要是通過extern 關鍵字來實現的。

這是為了解決同一個變量在眾多的文件里都需要使用的問題。

標識符和作用域

標識符就其實就是起的各種名字,在不同情況下,當然有不同的規范。

作用域就是花括號外的可以用花括號外的。在花括號內的無法影響到花括號外的。

復合類型

其實復合類型很簡單,包括 int &p,其中p是引用,值得是綁定到目標對象上的別名,而int *p是一個真正有存儲空間的對象。

無論是指針還是引用,都可以先定義,再賦值。

如何賦值指針?

如何賦值引用?

如何解使用指針?

指向指針的指針的指針,就是一個不斷在int后加*號的套娃,一層一層的套。

引用綁定一次終身綁定,但指針是可以改的。

所以就有了p = &d;

當然最騷的是這個標示符 int *&r = p, 這代表了r 是一個指針的引用,可以發現,指針是一種特殊的類型,而后才是引用符號。訣竅是,從右向左讀,越靠近變量的作用越明顯,int* &r,先是個引用,然后是指針。

Const

這個東西,簡直是讓人想死。

它的實質是在一個變量初始化之后,這個東西就不可以改了。

const如果想要在一個文件中定義,在不同的文件中引用該怎么辦?

很簡單,只需要在const前面加上extern就可以了。

const的特殊性在于const的指針分為指針指向的目標是常量,還是指針本身是一個常量。

一般是指向常量的指針,const int *p

但指針的常量是 int * const p,還是從右往左看,最前面的范圍更大。先聲明const是什么,然后是int*的類型。

有一個典型的讀法:p is a point to int const. 遇到就替換成point to,遇到p,就替換成p is a.然后int * const p 就是 p is a const point to int.那就是指向int的常量指針。

constexpr和常量表達式

const是指值不會改變并且在編譯過程就能得到計算結果的表達式。

兩個條件,首先要const這樣才能在編譯過程中獲得,其次要是赤裸裸的值,不能是一個函數,需要在運行時才能獲得結果。

constexpr變量

這個機制是人為的指定在賦值的過程中進行編譯。其實和const一樣。

但是constexpr是有限制的,比如自定義的類,string等都不能被定義。并且constexpr可以定義一些簡單的函數表達,這和const不同。

這個東西,可能是應用在嵌入式開發的吧,以后再熟悉。

處理類型:typedef,using

1.類型是難于拼寫的,類型多了就很煩。

2.代碼一長,根本搞不清楚類型是什么,需要回頭尋找幫助。

(我覺得這完全不是問題啊,以我目前的開發經驗,沒有遇到過這種情況)

只要知道兩種方法,一種是typedef,一種是using 就行。

AUTO

Auto不需要知道太多

注意auto在推斷的過程中,有可能是和初始值不同。

decltype類型指示符

decltype的意思是可以自動推測表達式的類型,然后用推測出來的類型去賦值一個東西。

比如 decltype(a) b =1, 這個b就是a的類型。

自定義數據結構

其實就是struct,這個沒啥說頭。

唯一的要求就是希望建立struct的時候,struct分開寫。

編寫自己的頭文件 #ifdef

我們通常把string,自定義類放在一個頭文件中,然后在main函數中加上.h文件中。

這個過程中,其實是一個預處理器的處理過程,這個過程竟然是在編譯之前的。

當預處理器看到# include 時,就會直接用頭文件對#include進行替換。

有一個特性是頭文件保護符,這個保護符其實是驗證頭文件中的是否成功加入到了代碼中。

這個東西,為了保證唯一性,一般是和頭文件的#include一起添加的。

只要無腦添加這個東西就行。

總結

以上是生活随笔為你收集整理的int指针初始化_C++:变量,指针,引用const,extern,using,typedef,decltype关键字的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。