《基于Linux的C++》學(xué)習(xí)筆記(基于“學(xué)堂在線(xiàn)”喬林老師課程)(第一、二講)
第一講 ?C/C++ 基本語(yǔ)法元素 ?
一 ?程 序 ?
程序:一系列遵循一定規(guī)則并能正確完成特定功能的代碼或指令序列,通常包括數(shù)據(jù)結(jié)構(gòu)與算法兩部分 ?。
二 ? C 程序& C++ 程序介紹
?#include<stdio.h>
?
?int main()
?
?{
?
?printf("Hello World!\n");
?
?return 0;
?
?}?#include<iostream>
?
?using namespace std:
?
?int main()
?
?{
?
?cout << “Hello World!” << end;
?
?return 0;
?
?}
三 ?數(shù)據(jù)類(lèi)型 ?
整數(shù)類(lèi)型 ?int
signed
unsigned
long
short ?
浮點(diǎn)數(shù)類(lèi)型: double 或 float
小數(shù)表示法 ?:例: 3.1416、 –2.718281828 ?
科學(xué)計(jì)數(shù)法 ?:例: 3.14e3 = 3.14?103、 –2.7E–2 = –2.7?10–2 ?
四 ?變量
先定義再使用 定義格式: 變量類(lèi)型 變量名稱(chēng)[, 變量名稱(chēng)]; 單獨(dú)定義例: int a; 同時(shí)定義例: double b, c;
變量的四大基本特征(VANT) 變量總是具有值(value) 變量總是與內(nèi)存中的地址(address) 相對(duì)應(yīng) 變量總是具有名稱(chēng)(name) 變量總是具有確定的類(lèi)型(type) ?
五 ?宏&常量
文字?魔數(shù)也!
常量的定義:程序執(zhí)行期間其值不可改變的量 例: const int zero = 0; 格式: const 數(shù)據(jù)類(lèi)型 常量名稱(chēng) = 初始值;
常量與變量 定義常量時(shí)必須進(jìn)行初始化 常量不可改變值,其他與變量同 常量初始值必須能夠在編譯期間計(jì)算出來(lái) ?
宏定義 #define 指令:預(yù)處理命令 例: #define PI 3.14 一旦定義,可以代替常量使用 宏定義不是常量 程序中應(yīng)優(yōu)先使用常量而不是宏 ?
六 ?操作符與操作數(shù) ?
操作符分類(lèi) 一元操作符:只有單個(gè)操作數(shù),例如負(fù)號(hào)
二元操作數(shù):帶有兩個(gè)操作數(shù),例如加減乘除等
三元操作數(shù):帶有三個(gè)操作數(shù),例如條件表達(dá)式 ?
操作符的優(yōu)先級(jí)與結(jié)合性 優(yōu)先級(jí)確定計(jì)算順序,結(jié)合性確定計(jì)算方向 ?
第二講 ?程序流程控制
一 ?布爾數(shù)據(jù)
1 ?枚舉類(lèi)型 ?
枚舉類(lèi)型的聲明 格式: enum 枚舉名 { 元素名1, 元素名2, …, 元素名n }; 例: enum MONTH{ JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC };
枚舉類(lèi)型聲明中的元素為枚舉文字,不是變量
枚舉類(lèi)型變量的定義 例: MONTH month; ?
2 ?自定義類(lèi)型 ?
自定義類(lèi)型的格式 格式: typedef 原類(lèi)型標(biāo)識(shí) 新類(lèi)型名; 例: typedef ?int ?DWORD; ?
3 ?布爾類(lèi)型 ?
bool 類(lèi)型
取值: false、 true ?
bool 量的定義
定義: bool modified; 賦值: modified = true; ?
4 ?關(guān)系表達(dá)式 & 邏輯表達(dá)式 ?
關(guān)系操作符
大于(>)、等于(==)、小于(<)、不大于(<=)、不小于 (>=)、不等于(!=) ?
邏輯操作符
邏輯與(&&)、邏輯或(||)、邏輯非(!) ?
關(guān)系操作符與邏輯操作符的優(yōu)先級(jí)
從高到低順序:邏輯非“!”;小于“<”、不小于“>=”、大于“>”、不大于“<=”(同級(jí));等于“==”、不等于“!=”(同級(jí));邏輯與“&&”;邏輯或“||” ?
二 ?if分支結(jié)構(gòu)
格式一: if( 條件表達(dá)式 ) { 語(yǔ)句序列 }
格式二: if( 條件表達(dá)式 ) { 語(yǔ)句序列 1 } else { 語(yǔ)句序列 2 }
格式三: if( 條件表達(dá)式 1 ) { 語(yǔ)句序列 1 } else if( 條件表達(dá)式 2 ) { 語(yǔ)句序列 2 } … else { 語(yǔ)句序列 n } ?
三 ?switch分支結(jié)構(gòu)
1 ?格式
switch( 表達(dá)式 ) { case 常數(shù)表達(dá)式 1: 語(yǔ)句序列 1 case 常數(shù)表達(dá)式 2: 語(yǔ)句序列 2 ┇ case 常數(shù)表達(dá)式 n: 語(yǔ)句序列 n default: 默認(rèn)語(yǔ)句序列 } ?
2 ?流程圖

1 ?格式
while ( 表達(dá)式 ) 循環(huán)體 ?
2 ?流程圖

五 ?for循環(huán)結(jié)構(gòu)
1 ?格式 ?
for( 初始化表達(dá)式; 條件表達(dá)式; 步進(jìn)表達(dá)式 ) 循環(huán)體 ?
2 ?流程圖

3 ?遞增遞減表達(dá)式 ?
前綴遞增遞減 (++i) :先遞增遞減,再參與運(yùn)算 ?
后綴遞增遞減 ? ?(i++) ? ?:先參與運(yùn)算,再遞增遞減 ?
六 ?哨兵
break(未完)
七 ?練習(xí)

?#include<iostream>
?#include<iomanip>
?
?using namespace std;
?
?int main()
?{
? ? ?int a, b, c;
? ? ?for(a = 1;a < 6;a++)
? ? ?{
? ? ? ? ?for(c=a;c < 5 ;c++)
? ? ? ? ?{
? ? ? ? ? ? ?cout << " ";
? ? ? ? ?}
? ? ? ? ?for(b = 1;b < 2*a;b++)
? ? ? ? ?{
? ? ? ? ? ? ?cout << "*" ;
? ? ? ? ?} ? ? ? ? ? ? ? ? ?
? ? ? ? ?cout << endl;
? ? ?}
? ? ?return 0;
?}?#include<iostream>
?#include<iomanip>
?
?using namespace std;
?
?int main()
?{
? ? ?int a, b, c;
? ? ?for(a = 5;a >= 1;a--)
? ? ?{
? ? ? ? ?for(c=a;c < 5 ;c++)
? ? ? ? ?{
? ? ? ? ? ? ?cout << " ";
? ? ? ? ?}
? ? ? ? ?for(b = 1;b < 2*a;b++)
? ? ? ? ?{
? ? ? ? ? ? ?cout << "*" ;
? ? ? ? ?} ? ? ? ? ? ? ? ? ?
? ? ? ? ?cout << endl;
? ? ?}
? ? ?return 0;
?}
