97色伦色在线综合视频,无玛专区,18videosex性欧美黑色,日韩黄色电影免费在线观看,国产精品伦理一区二区三区,在线视频欧美日韩,亚洲欧美在线中文字幕不卡

公司網(wǎng)站怎樣維護(hù)運(yùn)營四川seo推廣公司

鶴壁市浩天電氣有限公司 2026/01/24 08:28:25
公司網(wǎng)站怎樣維護(hù)運(yùn)營,四川seo推廣公司,免費(fèi)推廣網(wǎng)店,我的公眾號(hào)C 學(xué)習(xí)_基礎(chǔ)知識(shí) 一直想學(xué)習(xí) C 這門編程語言#xff0c;但感覺 C 總是沒學(xué)牢靠一拖再拖#xff0c;這幾天根據(jù)網(wǎng)上教程#xff0c;準(zhǔn)備快速過下 C 基本語法。 對(duì)于我來說#xff0c;直接看文檔自學(xué)#xff0c;往往比看視頻效率高些#xff0c;相信有了 C 基礎(chǔ)#xff…C 學(xué)習(xí)_基礎(chǔ)知識(shí)一直想學(xué)習(xí) C 這門編程語言但感覺 C 總是沒學(xué)牢靠一拖再拖這幾天根據(jù)網(wǎng)上教程準(zhǔn)備快速過下 C 基本語法。對(duì)于我來說直接看文檔自學(xué)往往比看視頻效率高些相信有了 C 基礎(chǔ)C 的學(xué)習(xí)應(yīng)該會(huì)輕松些。一、C 教程#include iostream // iostream 輸入輸出流 頭文件 using namespace std; // C 命名空間 int main() { cout Hello World! endl; // cout 輸出語句 endl 換行 可以用 代替 cout Hello World! ; return 0; } //易錯(cuò)endl 中最后一個(gè)是字母小寫L // 輸出 // Hello World! // Hello World!關(guān)于 C 命名空間說明在c中名稱name可以是符號(hào)常量、變量、函數(shù)、結(jié)構(gòu)、枚舉、類和對(duì)象等等。工程越大名稱互相沖突性的可能性越大。另外使用多個(gè)廠商的類庫時(shí)也可能導(dǎo)致名稱沖突。為了避免在大規(guī)模程序的設(shè)計(jì)中以及在程序員使用各種各樣的C庫時(shí)這些標(biāo)識(shí)符的命名發(fā)生沖突標(biāo)準(zhǔn)C引入關(guān)鍵字namespace命名空間/名字空間/名稱空間可以更好地控制標(biāo)識(shí)符的[作用域]。命名空間的使用代碼示例如下//定義一個(gè)名字為A的命名空間變量、函數(shù) namespace A { int a 100; } namespace B { int a 200; } void test02() { //A::a a是屬于A中 coutA中a A::aendl;//100 coutB中a B::aendl;//200 }既然是初學(xué)就暫時(shí)不要深入探討了后來再慢慢補(bǔ)上。二、C 簡介C 是一種靜態(tài)類型的、編譯式的、通用的、大小寫敏感的、不規(guī)則的編程語言支持過程化編程、面向?qū)ο缶幊毯头盒途幊?。C 被認(rèn)為是一種中級(jí)語言它綜合了高級(jí)語言和低級(jí)語言的特點(diǎn)。C 是由 Bjarne Stroustrup 于 1979 年在新澤西州美利山貝爾實(shí)驗(yàn)室開始設(shè)計(jì)開發(fā)的。C 進(jìn)一步擴(kuò)充和完善了 C 語言最初命名為帶類的C后來在 1983 年更名為 C。C 是 C 的一個(gè)超集事實(shí)上任何合法的 C 程序都是合法的 C 程序。**注意**使用靜態(tài)類型的編程語言是在編譯時(shí)執(zhí)行類型檢查而不是在運(yùn)行時(shí)執(zhí)行類型檢查。1、面向?qū)ο蟪绦蛟O(shè)計(jì)C 完全支持面向?qū)ο蟮某绦蛟O(shè)計(jì)包括面向?qū)ο箝_發(fā)的四大特性封裝Encapsulation封裝是將數(shù)據(jù)和方法組合在一起對(duì)外部隱藏實(shí)現(xiàn)細(xì)節(jié)只公開對(duì)外提供的接口。這樣可以提高安全性、可靠性和靈活性。繼承Inheritance繼承是從已有類中派生出新類新類具有已有類的屬性和方法并且可以擴(kuò)展或修改這些屬性和方法。這樣可以提高代碼的復(fù)用性和可擴(kuò)展性。多態(tài)Polymorphism多態(tài)是指同一種操作作用于不同的對(duì)象可以有不同的解釋和實(shí)現(xiàn)。它可以通過接口或繼承實(shí)現(xiàn)可以提高代碼的靈活性和可讀性。抽象Abstraction抽象是從具體的實(shí)例中提取共同的特征形成抽象類或接口以便于代碼的復(fù)用和擴(kuò)展。抽象類和接口可以讓程序員專注于高層次的設(shè)計(jì)和業(yè)務(wù)邏輯而不必關(guān)注底層的實(shí)現(xiàn)細(xì)節(jié)。2、標(biāo)準(zhǔn)庫標(biāo)準(zhǔn)的 C 由三個(gè)重要部分組成核心語言提供了所有構(gòu)件塊包括變量、數(shù)據(jù)類型和常量等等。C 標(biāo)準(zhǔn)庫提供了大量的函數(shù)用于操作文件、字符串等。標(biāo)準(zhǔn)模板庫STL提供了大量的方法用于操作數(shù)據(jù)結(jié)構(gòu)等。3、ANSI 標(biāo)準(zhǔn)ANSI 標(biāo)準(zhǔn)是為了確保 C 的便攜性 —— 您所編寫的代碼在 Mac、UNIX、Windows、Alpha 計(jì)算機(jī)上都能通過編譯。由于 ANSI 標(biāo)準(zhǔn)已穩(wěn)定使用了很長的時(shí)間所有主要的 C 編譯器的制造商都支持 ANSI 標(biāo)準(zhǔn)。4、學(xué)習(xí) C學(xué)習(xí) C關(guān)鍵是要理解概念而不應(yīng)過于深究語言的技術(shù)細(xì)節(jié)。學(xué)習(xí)程序設(shè)計(jì)語言的目的是為了成為一個(gè)更好的程序員也就是說是為了能更有效率地設(shè)計(jì)和實(shí)現(xiàn)新系統(tǒng)以及維護(hù)舊系統(tǒng)。C 支持多種編程風(fēng)格。您可以使用 Fortran、C、Smalltalk 等任意一種語言的編程風(fēng)格來編寫代碼。每種風(fēng)格都能有效地保證運(yùn)行時(shí)間效率和空間效率。5、C 的使用C 語言在許多行業(yè)和領(lǐng)域都有廣泛應(yīng)用包括游戲開發(fā)C 是游戲開發(fā)領(lǐng)域中最常用的編程語言之一因?yàn)樗哂懈咝У男阅芎椭苯涌刂朴布哪芰?。許多主要的游戲引擎如 Unreal Engine 和 Unity都使用 C 編寫。嵌入式系統(tǒng)開發(fā)C 可以在嵌入式系統(tǒng)中發(fā)揮重要作用如智能手機(jī)、汽車、機(jī)器人和家電等領(lǐng)域。由于嵌入式系統(tǒng)通常具有嚴(yán)格的資源限制和實(shí)時(shí)要求因此 C 的高效性能和內(nèi)存控制功能非常有用。金融領(lǐng)域C 在金融領(lǐng)域中被廣泛應(yīng)用如高頻交易、算法交易和風(fēng)險(xiǎn)管理等領(lǐng)域。由于這些應(yīng)用程序需要高效的性能和對(duì)硬件的直接控制C 語言是一個(gè)合適的選擇。圖形圖像處理C 可以用于開發(fā)圖形和圖像處理應(yīng)用程序如計(jì)算機(jī)視覺、計(jì)算機(jī)圖形學(xué)和人工智能領(lǐng)域。由于這些應(yīng)用程序需要高效的計(jì)算能力和對(duì)硬件的控制因此 C 是一個(gè)很好的選擇??茖W(xué)計(jì)算和數(shù)值分析C 可以用于開發(fā)科學(xué)計(jì)算和數(shù)值分析應(yīng)用程序如數(shù)值模擬和高性能計(jì)算等領(lǐng)域。由于這些應(yīng)用程序需要高效的計(jì)算能力和對(duì)硬件的直接控制C 語言是一個(gè)很好的選擇。三、C 基本語法C 程序可以定義為對(duì)象的集合這些對(duì)象通過調(diào)用彼此的方法進(jìn)行交互?,F(xiàn)在讓我們簡要地看一下什么是類、對(duì)象方法、即時(shí)變量。對(duì)象 -對(duì)象具有狀態(tài)和行為。例如一只狗的狀態(tài) - 顏色、名稱、品種行為 - 搖動(dòng)、叫喚、吃。對(duì)象是類的實(shí)例。類 -類可以定義為描述對(duì)象行為/狀態(tài)的模板/藍(lán)圖。方法 -從基本上說一個(gè)方法表示一種行為。一個(gè)類可以包含多個(gè)方法??梢栽诜椒ㄖ袑懭脒壿?、操作數(shù)據(jù)以及執(zhí)行所有的動(dòng)作。即時(shí)變量 -每個(gè)對(duì)象都有其獨(dú)特的即時(shí)變量。對(duì)象的狀態(tài)是由這些即時(shí)變量的值創(chuàng)建的。1、C 程序結(jié)構(gòu)讓我們看一段簡單的代碼可以輸出單詞Hello World。#include iostream using namespace std; // main() 是程序開始執(zhí)行的地方 int main() { cout Hello World; // 輸出 Hello World return 0; } // 輸出 // Hello World接下來我們講解一下上面這段程序C 語言定義了一些頭文件這些頭文件包含了程序中必需的或有用的信息。上面這段程序中包含了頭文件 。下一行using namespace std;告訴編譯器使用 std 命名空間。命名空間是 C 中一個(gè)相對(duì)新的概念。下一行// main() 是程序開始執(zhí)行的地方是一個(gè)單行注釋。單行注釋以 // 開頭在行末結(jié)束。下一行int main()是主函數(shù)程序從這里開始執(zhí)行。下一行cout “Hello World”;會(huì)在屏幕上顯示消息 “Hello World”。下一行return 0;終止 main( )函數(shù)并向調(diào)用進(jìn)程返回值 0。2、C 注釋程序的注釋是解釋性語句您可以在 C 代碼中包含注釋這將提高源代碼的可讀性。所有的編程語言都允許某種形式的注釋。C 支持單行注釋和多行注釋。注釋中的所有字符會(huì)被 C 編譯器忽略。C 注釋一般有兩種//- 一般用于單行注釋。/*** … */** - 一般用于多行注釋。注釋以//開始直到行末為止。這部分內(nèi)容和 C 語言一樣。四、C 數(shù)據(jù)類型使用編程語言進(jìn)行編程時(shí)需要用到各種變量來存儲(chǔ)各種信息。變量保留的是它所存儲(chǔ)的值的內(nèi)存位置。這意味著當(dāng)您創(chuàng)建一個(gè)變量時(shí)就會(huì)在內(nèi)存中保留一些空間。您可能需要存儲(chǔ)各種數(shù)據(jù)類型比如字符型、寬字符型、整型、浮點(diǎn)型、雙浮點(diǎn)型、布爾型等的信息操作系統(tǒng)會(huì)根據(jù)變量的數(shù)據(jù)類型來分配內(nèi)存和決定在保留內(nèi)存中存儲(chǔ)什么。1、基本的內(nèi)置類型C 為程序員提供了種類豐富的內(nèi)置數(shù)據(jù)類型和用戶自定義的數(shù)據(jù)類型。下表列出了七種基本的 C 數(shù)據(jù)類型類型關(guān)鍵字布爾型bool字符型char整型int浮點(diǎn)型float雙浮點(diǎn)型double無類型void寬字符型wchar_t其實(shí) wchar_t 是這樣來的typedef short int wchar_t;所以 wchar_t 實(shí)際上的空間是和 short int 一樣。一些基本類型可以使用一個(gè)或多個(gè)類型修飾符進(jìn)行修飾修飾符描述示例signed表示有符號(hào)類型默認(rèn)signed int x -10;unsigned表示無符號(hào)類型unsigned int y 10;short表示短整型short int z 100;long表示長整型long int a 100000;const表示常量值不可修改const int b 5;volatile表示變量可能被意外修改禁止編譯器優(yōu)化volatile int c 10;mutable表示類成員可以在const對(duì)象中修改mutable int counter;下表顯示了各種變量類型在內(nèi)存中存儲(chǔ)值時(shí)需要占用的內(nèi)存以及該類型的變量所能存儲(chǔ)的最大值和最小值。**注意**不同系統(tǒng)會(huì)有所差異一字節(jié)為 8 位。**注意**默認(rèn)情況下int、short、long都是帶符號(hào)的即 signed。**注意**long int 8 個(gè)字節(jié)int 都是 4 個(gè)字節(jié)早期的 C 編譯器定義了 long int 占用 4 個(gè)字節(jié)int 占用 2 個(gè)字節(jié)新版的 C/C 標(biāo)準(zhǔn)兼容了早期的這一設(shè)定。數(shù)據(jù)類型描述大小字節(jié)范圍/取值示例bool布爾類型表示真或假1true或falsechar字符類型通常用于存儲(chǔ) ASCII 字符1-128 到 127 或 0 到 255signed char有符號(hào)字符類型1-128 到 127unsigned char無符號(hào)字符類型10 到 255wchar_t寬字符類型用于存儲(chǔ) Unicode 字符2 或 4取決于平臺(tái)char16_t16 位 Unicode 字符類型C11 引入20 到 65,535char32_t32 位 Unicode 字符類型C11 引入40 到 4,294,967,295short短整型2-32,768 到 32,767unsigned short無符號(hào)短整型20 到 65,535int整型4-2,147,483,648 到 2,147,483,647unsigned int無符號(hào)整型40 到 4,294,967,295long長整型4 或 8取決于平臺(tái)unsigned long無符號(hào)長整型4 或 8取決于平臺(tái)long long長長整型C11 引入8-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807unsigned long long無符號(hào)長長整型C11 引入80 到 18,446,744,073,709,551,615float單精度浮點(diǎn)數(shù)4約 ±3.4e±386-7 位有效數(shù)字double雙精度浮點(diǎn)數(shù)8約 ±1.7e±30815 位有效數(shù)字long double擴(kuò)展精度浮點(diǎn)數(shù)8、12 或 16取決于平臺(tái)2、C11 新增類型數(shù)據(jù)類型描述示例auto自動(dòng)類型推斷auto x 10;decltype獲取表達(dá)式的類型decltype(x) y 20;nullptr空指針常量int* ptr nullptr;std::initializer_list初始化列表類型std::initializer_listint list {1, 2, 3};std::tuple元組類型可以存儲(chǔ)多個(gè)不同類型的值std::tupleint, float, char t(1, 2.0, a);注意各種類型的存儲(chǔ)大小與系統(tǒng)位數(shù)有關(guān)但目前通用的以64位系統(tǒng)為主。以下列出了32位系統(tǒng)與64位系統(tǒng)的存儲(chǔ)大小的差別windows 相同從上表可得知變量的大小會(huì)根據(jù)編譯器和所使用的電腦而有所不同。下面實(shí)例會(huì)輸出您電腦上各種數(shù)據(jù)類型的大小。#include iostream #include limits using namespace std; int main() { cout type: ********size********* endl; cout bool: 所占字節(jié)數(shù) sizeof(bool); cout 最大值 (numeric_limitsbool::max)(); cout 最小值 (numeric_limitsbool::min)() endl; cout char: 所占字節(jié)數(shù) sizeof(char); cout 最大值 (numeric_limitschar::max)(); cout 最小值 (numeric_limitschar::min)() endl; cout signed char: 所占字節(jié)數(shù) sizeof(signed char); cout 最大值 (numeric_limitssigned char::max)(); cout 最小值 (numeric_limitssigned char::min)() endl; cout wchar_t: 所占字節(jié)數(shù) sizeof(wchar_t); cout 最大值 (numeric_limitswchar_t::max)(); cout 最小值 (numeric_limitswchar_t::min)() endl; cout short: 所占字節(jié)數(shù) sizeof(short); cout 最大值 (numeric_limitsshort::max)(); cout 最小值 (numeric_limitsshort::min)() endl; cout short: 所占字節(jié)數(shù) sizeof(int); cout 最大值 (numeric_limitsint::max)(); cout 最小值 (numeric_limitsint::min)() endl; cout unsigned: 所占字節(jié)數(shù) sizeof(unsigned); cout 最大值 (numeric_limitsunsigned::max)(); cout 最小值 (numeric_limitsunsigned::min)() endl; cout long: 所占字節(jié)數(shù) sizeof(long); cout 最大值 (numeric_limitslong::max)(); cout 最小值 (numeric_limitslong::min)() endl; cout unsigned long: 所占字節(jié)數(shù) sizeof(unsigned long); cout 最大值 (numeric_limitsunsigned long::max)(); cout 最小值 (numeric_limitsunsigned long::min)() endl; cout double: 所占字節(jié)數(shù) sizeof(double); cout 最大值 (numeric_limitsdouble::max)(); cout 最小值 (numeric_limitsdouble::min)() endl; cout long double: 所占字節(jié)數(shù) sizeof(long double); cout 最大值 (numeric_limitslong double::max)(); cout 最小值 (numeric_limitslong double::min)() endl; cout float: 所占字節(jié)數(shù) sizeof(float); cout 最大值 (numeric_limitsfloat::max)(); cout 最小值 (numeric_limitsfloat::min)() endl; cout size_t: 所占字節(jié)數(shù) sizeof(size_t); cout 最大值 (numeric_limitssize_t::max)(); cout 最小值 (numeric_limitssize_t::min)() endl; cout string: 所占字節(jié)數(shù) sizeof(string); cout 最大值 (numeric_limitsstring::max)(); cout 最小值 (numeric_limitsstring::min)() endl; cout type: ********size********* endl; return 0; } // :: 相當(dāng)于 的3、派生數(shù)據(jù)類型數(shù)據(jù)類型描述示例數(shù)組相同類型元素的集合int arr[5] {1, 2, 3, 4, 5};指針存儲(chǔ)變量內(nèi)存地址的類型int* ptr x;引用變量的別名int ref x;函數(shù)函數(shù)類型表示函數(shù)的簽名int func(int a, int b);結(jié)構(gòu)體用戶定義的數(shù)據(jù)類型可以包含多個(gè)不同類型的成員struct Point { int x; int y; };類用戶定義的數(shù)據(jù)類型支持封裝、繼承和多態(tài)class MyClass { ... };聯(lián)合體多個(gè)成員共享同一塊內(nèi)存union Data { int i; float f; };枚舉用戶定義的整數(shù)常量集合enum Color { RED, GREEN, BLUE };4、類型別名別名描述示例typedef為現(xiàn)有類型定義別名typedef int MyInt;using為現(xiàn)有類型定義別名C11 引入using MyInt int;5、標(biāo)準(zhǔn)庫類型數(shù)據(jù)類型描述示例std::string字符串類型std::string s Hello;std::vector動(dòng)態(tài)數(shù)組std::vectorint v {1, 2, 3};std::array固定大小數(shù)組C11 引入std::arrayint, 3 a {1, 2, 3};std::pair存儲(chǔ)兩個(gè)值的容器std::pairint, float p(1, 2.0);std::map鍵值對(duì)容器std::mapint, std::string m;std::set唯一值集合std::setint s {1, 2, 3};6、typedef 聲明您可以使用typedef為一個(gè)已有的類型取一個(gè)新的名字。下面是使用 typedef 定義一個(gè)新類型的語法typedef type newname;例如下面的語句會(huì)告訴編譯器feet 是 int 的另一個(gè)名稱typedef int feet;現(xiàn)在下面的聲明是完全合法的它創(chuàng)建了一個(gè)整型變量 distancefeet distance;7、枚舉類型枚舉類型(enumeration)是C中的一種派生數(shù)據(jù)類型它是由用戶定義的若干枚舉常量的集合。如果一個(gè)變量只有幾種可能的值可以定義為枚舉(enumeration)類型。所謂枚舉是指將變量的值一一列舉出來變量的值只能在列舉出來的值的范圍內(nèi)。創(chuàng)建枚舉需要使用關(guān)鍵字enum。枚舉類型的一般形式為enum 枚舉名{ 標(biāo)識(shí)符[整型常數(shù)], 標(biāo)識(shí)符[整型常數(shù)], ... 標(biāo)識(shí)符[整型常數(shù)] } 枚舉變量;如果枚舉沒有初始化, 即省掉整型常數(shù)時(shí), 則從第一個(gè)標(biāo)識(shí)符開始。例如下面的代碼定義了一個(gè)顏色枚舉變量 c 的類型為 color。最后c 被賦值為 “blue”。enum color { red, green, blue } c; c blue;默認(rèn)情況下第一個(gè)名稱的值為 0第二個(gè)名稱的值為 1第三個(gè)名稱的值為 2以此類推。但是您也可以給名稱賦予一個(gè)特殊的值只需要添加一個(gè)初始值即可。例如在下面的枚舉中g(shù)reen的值為 5。enum color { red, green5, blue };在這里blue的值為 6因?yàn)槟J(rèn)情況下每個(gè)名稱都會(huì)比它前面一個(gè)名稱大 1但 red 的值依然為 0。8、類型轉(zhuǎn)換類型轉(zhuǎn)換是將一個(gè)數(shù)據(jù)類型的值轉(zhuǎn)換為另一種數(shù)據(jù)類型的值。C 中有四種類型轉(zhuǎn)換靜態(tài)轉(zhuǎn)換、動(dòng)態(tài)轉(zhuǎn)換、常量轉(zhuǎn)換和重新解釋轉(zhuǎn)換。1靜態(tài)轉(zhuǎn)換靜態(tài)轉(zhuǎn)換是將一種數(shù)據(jù)類型的值強(qiáng)制轉(zhuǎn)換為另一種數(shù)據(jù)類型的值。靜態(tài)轉(zhuǎn)換通常用于比較類型相似的對(duì)象之間的轉(zhuǎn)換例如將 int 類型轉(zhuǎn)換為 float 類型。靜態(tài)轉(zhuǎn)換不進(jìn)行任何運(yùn)行時(shí)類型檢查因此可能會(huì)導(dǎo)致運(yùn)行時(shí)錯(cuò)誤。int i 10; float f static_castfloat(i); // 靜態(tài)將int類型轉(zhuǎn)換為float類型2動(dòng)態(tài)轉(zhuǎn)換暫且跳過動(dòng)態(tài)轉(zhuǎn)換dynamic_cast是 C 中用于在繼承層次結(jié)構(gòu)中進(jìn)行向下轉(zhuǎn)換downcasting的一種機(jī)制。動(dòng)態(tài)轉(zhuǎn)換通常用于將一個(gè)基類指針或引用轉(zhuǎn)換為派生類指針或引用。動(dòng)態(tài)轉(zhuǎn)換在運(yùn)行時(shí)進(jìn)行類型檢查。如果轉(zhuǎn)換失敗對(duì)于指針類型會(huì)返回 nullptr對(duì)于引用類型則會(huì)拋出 std::bad_cast 異常。dynamic_cast目標(biāo)類型(表達(dá)式)目標(biāo)類型必須是指針或引用類型。表達(dá)式需要轉(zhuǎn)換的基類指針或引用。3常量轉(zhuǎn)換常量轉(zhuǎn)換用于將 const 類型的對(duì)象轉(zhuǎn)換為非 const 類型的對(duì)象。常量轉(zhuǎn)換只能用于轉(zhuǎn)換掉 const 屬性不能改變對(duì)象的類型。const int i 10; int r const_castint(i); // 常量轉(zhuǎn)換將const int轉(zhuǎn)換為int五、實(shí)訓(xùn)編寫計(jì)算器程序// 學(xué)習(xí)文檔注釋示例如下 /** * brief 計(jì)算兩個(gè)整數(shù)的和。 * * param a [in] 第一個(gè)整數(shù)。 * param b [in] 第二個(gè)整數(shù)。 * return 返回兩個(gè)整數(shù)的和。 * * author wiro * date 2025/12/15 */ // 包含輸入輸出流頭文件用于 cout (輸出) 和 cin (輸入) #include iostream // 用于處理可能的輸入錯(cuò)誤 (可選但更健壯) #include limits // 函數(shù)聲明 定義加法減法乘法除法函數(shù) double add(double a,double b); double subtract(double a,double b); double multiply(double a,double b); double divide(double a,double b); int main() { // 定義變量存儲(chǔ)兩個(gè)操作數(shù)和運(yùn)算符 double num1,num2,result; char op; // 標(biāo)記是否繼續(xù)計(jì)算 char continueFlag y; // 循環(huán)實(shí)現(xiàn)多次計(jì)算 while (continueFlag y || continueFlag Y) { // 這個(gè)程序沒在前面定義命名空間所以要加上 std:: // std::cout 意思是 標(biāo)準(zhǔn)的輸出 // 提示用戶輸入 std::cout 簡易計(jì)算器 std::endl; std::cout 請(qǐng)輸入第一個(gè)數(shù)字; std::cin num1; // 輸入 num1 數(shù)值 // 檢查輸入是否合法比如輸入非數(shù)字的情況 if (std::cin.fail()) { std::cout 輸入錯(cuò)誤請(qǐng)輸入有效數(shù)字。 std::endl; // 清除輸入錯(cuò)誤狀態(tài) std::cin.clear(); // 忽略緩沖區(qū)中的無效字符 std::cin.ignore(std::numeric_limitsstd::streamsize::max(), ); continue; } std::cout 請(qǐng)輸入運(yùn)算符(、-、*、/):; std::cin op; std::cout 請(qǐng)輸入第二個(gè)數(shù)字; std::cin num2; // 檢查輸入是否合法比如輸入非數(shù)字的情況 if (std::cin.fail()) { std::cout 輸入錯(cuò)誤請(qǐng)輸入有效數(shù)字。 std::endl; // 清除輸入錯(cuò)誤狀態(tài) std::cin.clear(); // 忽略緩沖區(qū)中的無效字符 std::cin.ignore(std::numeric_limitsstd::streamsize::max(), ); continue; } // 條件判斷根據(jù)運(yùn)算符選擇對(duì)應(yīng)的計(jì)算函數(shù) switch (op) { case : result add(num1,num2); std::cout num1 num2 result std::endl; break; case -: result subtract(num1,num2); std::cout num1 - num2 result std::endl; break; case *: result multiply(num1,num2); std::cout num1 * num2 result std::endl; break; case /: // 除法特殊處理除數(shù)不能為 0 if (num2 0) { std::cout 錯(cuò)誤除數(shù)不能為 0 ! std::endl; } else { result divide(num1,num2); std::cout num1 / num2 result std::endl; } break; default: std::cout 錯(cuò)誤: 無效的運(yùn)算符! std::endl; break; } // 詢問是否繼續(xù)計(jì)算 std::cout 是否繼續(xù)計(jì)算?(y/n):; std::cin continueFlag; // 清空換行符避免影響下一次輸入 std::cin.ignore(std::numeric_limitsstd::streamsize::max(), ); std::cout ------------------------ std::endl; } std::cout 計(jì)算器已退出感謝使用! std::endl; return 0; } // 函數(shù)定義加法 double add(double a,double b) { return a b; } // 函數(shù)定義減法 double subtract(double a,double b) { return a - b; } // 函數(shù)定義乘法 double multiply(double a,double b) { return a * b; } // 函數(shù)定義除法 double divide(double a,double b) { return a / b; }六、C 變量類型變量其實(shí)只不過是程序可操作的存儲(chǔ)區(qū)的名稱。在 C 中有多種變量類型可用于存儲(chǔ)不同種類的數(shù)據(jù)。C 中每個(gè)變量都有指定的類型類型決定了變量存儲(chǔ)的大小和布局該范圍內(nèi)的值都可以存儲(chǔ)在內(nèi)存中運(yùn)算符可應(yīng)用于變量上。變量的名稱可以由字母、數(shù)字和下劃線字符組成。它必須以字母或下劃線開頭。大寫字母和小寫字母是不同的因?yàn)?C 是大小寫敏感的?;谇耙徽轮v解的基本類型有以下幾種基本的變量類型將在下一章中進(jìn)行講解類型描述bool布爾類型存儲(chǔ)值 true 或 false占用 1 個(gè)字節(jié)。char字符類型用于存儲(chǔ) ASCII 字符通常占用 1 個(gè)字節(jié)。int整數(shù)類型通常用于存儲(chǔ)普通整數(shù)通常占用 4 個(gè)字節(jié)。float單精度浮點(diǎn)值用于存儲(chǔ)單精度浮點(diǎn)數(shù)。單精度是這樣的格式1 位符號(hào)8 位指數(shù)23 位小數(shù)通常占用4個(gè)字節(jié)。double雙精度浮點(diǎn)值用于存儲(chǔ)雙精度浮點(diǎn)數(shù)。雙精度是 1 位符號(hào)11 位指數(shù)52 位小數(shù)通常占用 8 個(gè)字節(jié)。void表示類型的缺失。wchar_t寬字符類型用于存儲(chǔ)更大范圍的字符通常占用 2 個(gè)或 4 個(gè)字節(jié)。C 也允許定義各種其他類型的變量比如枚舉、指針、數(shù)組、引用、數(shù)據(jù)結(jié)構(gòu)、類等等這將會(huì)在后續(xù)的章節(jié)中進(jìn)行講解。整數(shù)類型Integer Typesint用于表示整數(shù)通常占用4個(gè)字節(jié)。short用于表示短整數(shù)通常占用2個(gè)字節(jié)。long用于表示長整數(shù)通常占用4個(gè)字節(jié)。long long用于表示更長的整數(shù)通常占用8個(gè)字節(jié)。浮點(diǎn)類型Floating-Point Typesfloat用于表示單精度浮點(diǎn)數(shù)通常占用4個(gè)字節(jié)。double用于表示雙精度浮點(diǎn)數(shù)通常占用8個(gè)字節(jié)。long double用于表示更高精度的浮點(diǎn)數(shù)占用字節(jié)數(shù)可以根據(jù)實(shí)現(xiàn)而變化。字符類型Character Typeschar用于表示字符通常占用1個(gè)字節(jié)。wchar_t用于表示寬字符通常占用2或4個(gè)字節(jié)。char16_t用于表示16位Unicode字符占用2個(gè)字節(jié)。char32_t用于表示32位Unicode字符占用4個(gè)字節(jié)。布爾類型Boolean Typebool用于表示布爾值只能取true或false。枚舉類型Enumeration Typesenum用于定義一組命名的整數(shù)常量。指針類型Pointer Typestype*用于表示指向類型為type的對(duì)象的指針。數(shù)組類型Array Typestype[]或type[size]用于表示具有相同類型的元素組成的數(shù)組。結(jié)構(gòu)體類型Structure Typesstruct用于定義包含多個(gè)不同類型成員的結(jié)構(gòu)。類類型Class Typesclass用于定義具有屬性和方法的自定義類型。共用體類型Union Typesunion用于定義一種特殊的數(shù)據(jù)類型它可以在相同的內(nèi)存位置存儲(chǔ)不同的數(shù)據(jù)類型。在 C 中類型的長度即占用的字節(jié)數(shù)取決于編譯器和計(jì)算機(jī)架構(gòu)然而C 標(biāo)準(zhǔn)規(guī)定了不同整數(shù)類型的最小范圍而不是具體的字節(jié)數(shù)這是為了確保代碼在不同的系統(tǒng)上都能正確運(yùn)行。請(qǐng)注意以上類型的范圍只是 C 標(biāo)準(zhǔn)規(guī)定的最小要求實(shí)際上許多系統(tǒng)上這些類型可能占用更多的字節(jié)例如很多現(xiàn)代計(jì)算機(jī)上 int 通常占用 4 字節(jié)而 long 可能占用 8 字節(jié)。下面我們將講解如何定義、聲明和使用各種類型的變量。1、C 中的變量定義變量定義就是告訴編譯器在何處創(chuàng)建變量的存儲(chǔ)以及如何創(chuàng)建變量的存儲(chǔ)。變量定義指定一個(gè)數(shù)據(jù)類型并包含了該類型的一個(gè)或多個(gè)變量的列表如下所示type variable_list;在這里type必須是一個(gè)有效的 C 數(shù)據(jù)類型可以是 char、wchar_t、int、float、double、bool 或任何用戶自定義的對(duì)象variable_list可以由一個(gè)或多個(gè)標(biāo)識(shí)符名稱組成多個(gè)標(biāo)識(shí)符之間用逗號(hào)分隔。下面列出幾個(gè)有效的聲明int i, j, k; char c, ch; float f, salary; double d;行int i, j, k;聲明并定義了變量 i、j 和 k這指示編譯器創(chuàng)建類型為 int 的名為 i、j、k 的變量。變量可以在聲明的時(shí)候被初始化指定一個(gè)初始值。初始化器由一個(gè)等號(hào)后跟一個(gè)常量表達(dá)式組成如下所示type variable_name value;下面列舉幾個(gè)實(shí)例extern int d 3, f 5; // d 和 f 的聲明 int d 3, f 5; // 定義并初始化 d 和 f byte z 22; // 定義并初始化 z char x x; // 變量 x 的值為 x不帶初始化的定義帶有靜態(tài)存儲(chǔ)持續(xù)時(shí)間的變量會(huì)被隱式初始化為 NULL所有字節(jié)的值都是 0其他所有變量的初始值是未定義的。2、C 中的變量聲明變量聲明向編譯器保證變量以給定的類型和名稱存在這樣編譯器在不需要知道變量完整細(xì)節(jié)的情況下也能繼續(xù)進(jìn)一步的編譯。變量聲明只在編譯時(shí)有它的意義在程序連接時(shí)編譯器需要實(shí)際的變量聲明。當(dāng)您使用多個(gè)文件且只在其中一個(gè)文件中定義變量時(shí)定義變量的文件在程序連接時(shí)是可用的變量聲明就顯得非常有用。您可以使用extern關(guān)鍵字在任何地方聲明一個(gè)變量。雖然您可以在 C 程序中多次聲明一個(gè)變量但變量只能在某個(gè)文件、函數(shù)或代碼塊中被定義一次。嘗試下面的實(shí)例其中變量在頭部就已經(jīng)被聲明但它們是在主函數(shù)內(nèi)被定義和初始化的#include iostream using namespace std; // 聲明變量 extern int a,b; extern int c; extern float f; int main() { // 變量定義 int a,b; int c; float f; // 實(shí)際初始化 a 10; b 20; c a b; cout f endl; f 70.0 / 3.0; cout f endl; return 0; } // 輸出 // -5.09463e-35 // 23.3333同樣的在函數(shù)聲明時(shí)提供一個(gè)函數(shù)名而函數(shù)的實(shí)際定義則可以在任何地方進(jìn)行。例如// 函數(shù)聲明 int func(); int main() { // 函數(shù)調(diào)用 int i func(); } // 函數(shù)定義 int func() { return 0; }3、C 中的左值和右值C 中有兩種類型的表達(dá)式**左值lvalue**指向內(nèi)存位置的表達(dá)式被稱為左值lvalue表達(dá)式。左值可以出現(xiàn)在賦值號(hào)的左邊或右邊。**右值rvalue**術(shù)語右值rvalue指的是存儲(chǔ)在內(nèi)存中某些地址的數(shù)值。右值是不能對(duì)其進(jìn)行賦值的表達(dá)式也就是說右值可以出現(xiàn)在賦值號(hào)的右邊但不能出現(xiàn)在賦值號(hào)的左邊。變量是左值因此可以出現(xiàn)在賦值號(hào)的左邊。數(shù)值型的字面值是右值因此不能被賦值不能出現(xiàn)在賦值號(hào)的左邊。下面是一個(gè)有效的語句int g 20;但是下面這個(gè)就不是一個(gè)有效的語句會(huì)生成編譯時(shí)錯(cuò)誤10 20;七、C 變量作用域一般來說有三個(gè)地方可以定義變量在函數(shù)或一個(gè)代碼塊內(nèi)部聲明的變量稱為局部變量。在函數(shù)參數(shù)的定義中聲明的變量稱為形式參數(shù)。在所有函數(shù)外部聲明的變量稱為全局變量。作用域是程序的一個(gè)區(qū)域變量的作用域可以分為以下幾種局部作用域在函數(shù)內(nèi)部聲明的變量具有局部作用域它們只能在函數(shù)內(nèi)部訪問。局部變量在函數(shù)每次被調(diào)用時(shí)被創(chuàng)建在函數(shù)執(zhí)行完后被銷毀。全局作用域在所有函數(shù)和代碼塊之外聲明的變量具有全局作用域它們可以被程序中的任何函數(shù)訪問。全局變量在程序開始時(shí)被創(chuàng)建在程序結(jié)束時(shí)被銷毀。塊作用域在代碼塊內(nèi)部聲明的變量具有塊作用域它們只能在代碼塊內(nèi)部訪問。塊作用域變量在代碼塊每次被執(zhí)行時(shí)被創(chuàng)建在代碼塊執(zhí)行完后被銷毀。類作用域在類內(nèi)部聲明的變量具有類作用域它們可以被類的所有成員函數(shù)訪問。類作用域變量的生命周期與類的生命周期相同。**注意**如果在內(nèi)部作用域中聲明的變量與外部作用域中的變量同名則內(nèi)部作用域中的變量將覆蓋外部作用域中的變量。1、局部變量在函數(shù)或一個(gè)代碼塊內(nèi)部聲明的變量稱為局部變量。它們只能被函數(shù)內(nèi)部或者代碼塊內(nèi)部的語句使用。下面的實(shí)例使用了局部變量#include iostream using namespace std; int main() { // 局部變量聲明 int a,b; int c; // 實(shí)際初始化 a 10; b 20; c a b; cout c; return 0; } // 輸出 // 302、全局變量在所有函數(shù)外部定義的變量通常是在程序的頭部稱為全局變量。全局變量的值在程序的整個(gè)生命周期內(nèi)都是有效的。全局變量可以被任何函數(shù)訪問。也就是說全局變量一旦聲明在整個(gè)程序中都是可用的。下面的實(shí)例使用了全局變量和局部變量#include iostream using namespace std; // 全局變量聲明 int g; int main() { // 局部變量聲明 int a,b; // 實(shí)際初始化 a 10; b 20; g a b; cout g; return 0; } // 輸出 // 30在程序中局部變量和全局變量的名稱可以相同但是在函數(shù)內(nèi)局部變量的值會(huì)覆蓋全局變量的值。下面是一個(gè)實(shí)例#include iostream using namespace std; // 全局變量聲明 int g 20; int main() { // 局部變量聲明 int g 10; cout g; return 0; } // 輸出 // 103、初始化局部變量和全局變量當(dāng)局部變量被定義時(shí)系統(tǒng)不會(huì)對(duì)其初始化您必須自行對(duì)其初始化。定義全局變量時(shí)系統(tǒng)會(huì)自動(dòng)初始化為下列值數(shù)據(jù)類型初始化默認(rèn)值int0char‘’float0double0pointerNULL正確地初始化變量是一個(gè)良好的編程習(xí)慣否則有時(shí)候程序可能會(huì)產(chǎn)生意想不到的結(jié)果。塊作用域指的是在代碼塊內(nèi)部聲明的變量#include iostream int main() { int a 10; { int a 20; // 塊作用域變量 std::cout 塊變量 a std::endl; } std::cout 外部變量 a std::endl; return 0; } // 輸出 // 塊變量20 // 外部變量104、類作用域類作用域指的是在類內(nèi)部聲明的變量#include iostream class MyClass { public: static int class_var; // 類作用域變量 }; int MyClass::class_var 30; int main() { std::cout 類變量 MyClass::class_var std::endl; return 0; } // 輸出 // 類變量30以上實(shí)例中MyClass 類中聲明了一個(gè)名為 class_var 的類作用域變量??梢允褂妙惷妥饔糜蚪馕鲞\(yùn)算符::來訪問這個(gè)變量。在 main() 函數(shù)中訪問 class_var 時(shí)輸出的是 30。寫在最后只能說 C 大部分語法結(jié)構(gòu) 和 C 高度相似有了 C 基礎(chǔ)這些學(xué)的很快。補(bǔ)個(gè)視頻地址不懂的看視頻第一章-05_變量的特征_嗶哩嗶哩_bilibili
版權(quán)聲明: 本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)聯(lián)系我們進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

淮北官方網(wǎng)站網(wǎng)站頁面設(shè)計(jì)的重要性

淮北官方網(wǎng)站,網(wǎng)站頁面設(shè)計(jì)的重要性,東營志愿服務(wù)網(wǎng),龍巖網(wǎng)上辦事大廳官網(wǎng)Mac免費(fèi)NTFS讀寫工具#xff1a;輕松解決跨平臺(tái)文件傳輸難題 【免費(fèi)下載鏈接】Free-NTFS-for-Mac Niga

2026/01/23 06:46:01

電腦做網(wǎng)站怎么解析域名信息流推廣渠道

電腦做網(wǎng)站怎么解析域名,信息流推廣渠道,WordPress不發(fā)郵件了,暖暖社區(qū)免費(fèi)觀看高清完整版DLSS Swapper完全指南#xff1a;從零開始掌握游戲性能優(yōu)化終極技巧 【免費(fèi)下載鏈接】dlss

2026/01/21 17:40:01

怎么在手機(jī)上傳百度云wordpressseo托管

怎么在手機(jī)上傳百度云wordpress,seo托管,抖音網(wǎng)站怎么做,工裝公司怎么找資產(chǎn)配置的缺陷與挑戰(zhàn) 在個(gè)人投資領(lǐng)域,資產(chǎn)配置一直是備受關(guān)注的話題。然而,它并非如表面那般完美,存在著諸多問題和挑戰(zhàn)

2026/01/23 03:45:01