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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++基础学习(02)--(数据类型,变量类型,变量作用域,常量,修饰符类型)

發(fā)布時間:2023/12/13 c/c++ 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++基础学习(02)--(数据类型,变量类型,变量作用域,常量,修饰符类型) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 目錄
    • 一. 數(shù)據(jù)類型
      • C++ 中的數(shù)據(jù)類型
      • typedef
      • enumeration枚舉類型
      • c++中變量類型
    • 二.變量作用域
    • 三.常量
    • 四.修飾符類型

目錄

一. 數(shù)據(jù)類型

C++ 中的數(shù)據(jù)類型

使用編程語言進(jìn)行編程時,需要用到各種變量來存儲各種信息。變量保留的是它所存儲的值的內(nèi)存位置。這意味著,當(dāng)您創(chuàng)建一個變量時,就會在內(nèi)存中保留一些空間。

您可能需要存儲各種數(shù)據(jù)類型(比如字符型、寬字符型、整型、浮點型、雙浮點型、布爾型等)的信息,操作系統(tǒng)會根據(jù)變量的數(shù)據(jù)類型,來分配內(nèi)存和決定在保留內(nèi)存中存儲什么。


一些基本類型可以使用一個或多個類型修飾符進(jìn)行修飾:signed , unsigned ,short ,long

下表顯示了各種變量類型在內(nèi)存中存儲值時需要占用的內(nèi)存,以及該類型的變量所能存儲的最大值和最小值。
注意:不同系統(tǒng)會有所差異。

從上表可得知,變量的大小會根據(jù)編譯器和所使用的電腦而有所不同。
下面實例會輸出您電腦上各種數(shù)據(jù)類型的大小。

#include<iostream> #include<string> #include <limits> using namespace std; int main() { cout << "short: \t\t" << "所占字節(jié)數(shù):" << sizeof(short); cout << "\t最大值:" << (numeric_limits<short>::max)();cout << "\t\t最小值:"<< (numeric_limits<short>::min)() <<endl; }

typedef

enumeration枚舉類型


例子

#include <iostream> using namespace std; enum time {first,second,third,forth,fifth};int main() {enum time a=fifth;if (a==fifth) {cout << a <<endl;cout << "Succeed!";}return 0; }

運行結(jié)果:
4
Succeed!

c++中變量類型

變量其實只不過是程序可操作的存儲區(qū)的名稱。C++ 中每個變量都有指定的類型,類型決定了變量存儲的大小和布局,該范圍內(nèi)的值都可以存儲在內(nèi)存中,運算符可應(yīng)用于變量上。
變量的名稱可以由字母、數(shù)字和下劃線字符組成。它必須以字母或下劃線開頭。大寫字母和小寫字母是不同的,因為 C++ 是大小寫敏感的。
基于前一章講解的基本類型,有以下幾種基本的變量類型,將在下一章中進(jìn)行講解


注意

C++ 也允許定義各種其他類型的變量,比如枚舉、指針、數(shù)組、引用、數(shù)據(jù)結(jié)構(gòu)、類等等,這將會在后續(xù)的章節(jié)中進(jìn)行講解。


變量只能定義一次,可以使用extern關(guān)鍵字在多個文件中聲明多次
例子

#include <iostream> using namespace std;// 變量聲明 extern int a, b; //在頭文件被申明過 extern int c; extern float f;int main () {// 變量定義int a, b;int c;float f;// 實際初始化a = 10;b = 20;c = a + b;cout << c << endl ;f = 70.0/3.0;cout << f << endl ;return 0; }

當(dāng)上面的代碼被編譯和執(zhí)行時,它會產(chǎn)生下列結(jié)果:
30
23.333

**同樣的,在函數(shù)聲明時,提供一個函數(shù)名,而函數(shù)的實際定義則可以在任何地方進(jìn)行。**例如:

// 函數(shù)聲明 int func();int main() {// 函數(shù)調(diào)用int i = func(); }// 函數(shù)定義 int func() {return 0; }



二.變量作用域



在程序中,局部變量和全局變量的名稱可以相同,但是在函數(shù)內(nèi),局部變量的值會覆蓋全局變量的值。下面是一個實例:


全局變量系統(tǒng)自動初始化,局部變量系統(tǒng)不會自動初始化
定義變量時,最好進(jìn)行初始化

#include <iostream> using namespace std;// 全局變量聲明 int g = 99;// 函數(shù)聲明 int func();int main() {// 局部變量聲明int g = 10;cout << g << endl;int kk = func();cout << kk << endl;return 0; }// 函數(shù)定義 int func() {return g; }

運行結(jié)果:
10
99


運行結(jié)果:
此時的全局變量為:20
被改變的全局變量為:30
此時的全局變量為:30

三.常量












const 限定符定以后是不可以改變的,所以在定義時賦初值,否則是錯誤的 ;除非這個變量是用extern修飾的外部變量

四.修飾符類型





explicit構(gòu)造函數(shù)是用來防止隱式轉(zhuǎn)換的。請看下面的代碼:

class Test1 { public:Test1(int n){num=n;}//普通構(gòu)造函數(shù) private:int num; }; class Test2 { public:explicit Test2(int n){num=n;}//explicit(顯式)構(gòu)造函數(shù) private:int num; }; int main() {Test1 t1=12;//隱式調(diào)用其構(gòu)造函數(shù),成功Test2 t2=12;//編譯錯誤,不能隱式調(diào)用其構(gòu)造函數(shù)Test2 t2(12);//顯式調(diào)用成功return 0; }

Test1的構(gòu)造函數(shù)帶一個int型的參數(shù),代碼23行會隱式轉(zhuǎn)換成調(diào)用Test1的這個構(gòu)造函數(shù)。而Test2的構(gòu)造函數(shù)被聲明為explicit(顯式),這表示不能通過隱式轉(zhuǎn)換來調(diào)用這個構(gòu)造函數(shù),因此代碼24行會出現(xiàn)編譯錯誤。
普通構(gòu)造函數(shù)能夠被隱式調(diào)用。而explicit構(gòu)造函數(shù)只能被顯式調(diào)用

總結(jié)

以上是生活随笔為你收集整理的C++基础学习(02)--(数据类型,变量类型,变量作用域,常量,修饰符类型)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。