重溫c++(二)
---恢復內容開始---
數組---恢復內容開始---
格式控制符:
%x:以16進制的形式輸出或者讀入;
%u:已無符號形式輸出或讀入
cin cout 與scanf printf,一個程序不要兩者混用;
運算符:賦值運算符,算術運算符,關系運算符,邏輯運算符;
賦值運算符:=,+=,-=,*=,/=,%=
算數運算符:+,-,*,/,%,++,-- 進行算數運算時,如果存在溢出,則把溢出的部分拿掉(浮點型的難以預測),如 int i=0xffffffff,j;j=i+3; j=0x100000002;j為int型,4字節,j=2;計算時註意計算結果可能不溢出,但計算中間存在溢出,如計算printf("%d",(a+b)/2);如果a+b計算的結果c超出了int範圍,則計算會出錯,除法計算的類型與操作數中精度高的類型保持一致.
關系運算符:== != > < >= <= 返回結果為bool型,
邏輯運算符:&& || ! 短路計算,即計算到結果可以預知則不往後計算;
運算順序:一般可用()來使得優先運算
條件結構:if else, 存在多個相鄰的if else ,else與最近的if 匹配,
if else 過多時,根據情況可選擇switch 語句,
switch(表達式){ //表達式返回類型只能為整數類型 int, char(char類型實際就是ASCII碼值)
case 常量表達式1:
break;
case 常量表達式2
break;
....
}
循環結構:for循環,for(表達式1;表達式2;表達式3){ 語句組; }
for 循環中的表達式1,2,3都可以不寫,但是";"要保留.
do{循環體;} while(條件)循環,先循環在判斷條件
break:跳出最近的循環體;
continue:到循環的頭部,後面的語句不在執行,若為for循環,for(int i=0;i<n;i++),表達式3 :i++會執行
數組:
定義:類型名 數組名[元素個數],元素個數必須是常量或常量表達式;數組在內存中是連續存放的
T a[N]占用的空間是N*sizeof(T),字節,數組名a指的是數組所存儲的首地址,假設為p,則a[N]所存儲的地址為p+N*sizeof(int),
篩法求素數:
數組的初始化 int arr[10]={1,2,3,4}未賦予初始值的默認為二進制0,
數組下標越界編譯不報錯,運行可能會出錯,因為操作系統可能不允許越界區域內存的寫入.
二維數組:
二維數組在內存中也是連續存放二維數組初始化 int a[2[3]={(1,2,3),(4,5,6)}
如果對每行都進行了初始化,可以不寫行數 int a[][3]={(1,2,3),(4,5,6)}
重溫c++(二)