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

歡迎訪問 生活随笔!

生活随笔

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

c/c++

C++知识点打结(一)

發布時間:2023/12/14 c/c++ 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++知识点打结(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C++知識點打結(一)

      • 1. 類初始化過程
      • 2. 數組地址
      • 3. 進制
      • 4. 正則表達式匹配符
      • 5. strlen & sizeof
      • 6. 繼承
      • 7. 打印時格式化字符串
      • 8. 浮點數
      • 9. 友元
      • 10. Char

1. 類初始化過程

類的初始化過程也就是方法執行的過程。

父類的靜態域-子類的靜態域 父類的非靜態域-父類的構造函數 子類的非靜態域-子類的構造函數 規律就是 父類先于子類 靜態的先于非靜態的

其中靜態域包含靜態代碼塊與靜態方法,這個誰在前面,則先執行誰。

構造函數先調用基類的,再調用派生類的,析構函數相反。

2. 數組地址

int a[2][3] = { {1,2,43},{54,22,12} }; &a + i = a + i * sizeof(a); a + i = a + i * sizeof(a[0]);

&a[0][0]得到的是首元素的地址,
&a[0][0]+4 * i得到的是i行首元素的地址
&a[0][0]+4 * i+j得到的是s[i][j]的地址&s[i][j]
*(&a[0][0]+4 * i+j)得到的就是s[i][j]的值。
這道題的另外一種寫法就是(*(a+i)+j)

當a為數組名時,可以當做一維指針進行取值運算,但是由于數組名等同于常量指針,所以不可以對數組名進行賦值運算。
所以當a為數組時, a=任意表達式 這樣的計算都是非法的。
而*a++,其中自增 a=(a+1), 所以這種表達式一樣是非法的,編譯的時候會報錯。

float a[3]={1.5,2.5,3.5}; *pa=a;*(pa++)*=3;*pa 的值是()。

(pa++)=3;將該值變為原來的3倍,也就是數組a的第一個值為4.5;
由于pa++之后pa指針移動了size(float)個字節,所以pa指向a[1],所以值為2.5。

3. 進制

13*14=204在某進制下成立?

八進制13轉十進制:18+3=11
八進制14轉十進制:18+4=12
11*12=132

八進制204轉十進制:288+0*8+4=132

所以:(1x1+3x°)* (1x1+4x°) = 2x2+0x1+4x°
(x+3)(x+4)=2x2+4
x2+7x+12=2x2+4
x2-7x=8
x*(x-7)=8
x?=8 x?=-1
解二元一次方程組 得到 8 【x代表進制】

4. 正則表達式匹配符

\d 匹配一個數字字符。等價于 [0-9]。
\D 匹配一個非數字字符。等價于 [^0-9]。
\f 匹配一個換頁符。等價于 \x0c 和 \cL。
\n 匹配一個換行符。等價于 \x0a 和 \cJ。
\r 匹配一個回車符。等價于 \x0d 和 \cM。
\s 匹配任何空白字符,包括空格、制表符、換頁符等等。等價于 [ \f\n\r\t\v]。
\S 匹配任何非空白字符。等價于 [^ \f\n\r\t\v]。
\t 匹配一個制表符。等價于 \x09 和 \cI。
\v 匹配一個垂直制表符。等價于 \x0b 和 \cK。
\w 匹配字母、數字、下劃線。等價于’[A-Za-z0-9_]'。
\W 匹配非字母、數字、下劃線。等價于 ‘[^A-Za-z0-9_]’。

5. strlen & sizeof

strlen 是函數,sizeof 是運算符。
strlen 測量的是字符的實際長度,以’\0’ 結束,也就是說不算最后的’\0’;
而sizeof 測量的是字符的分配大小,包括最后的’\0’;
幫助記憶的話,可以理解成運算符更加底層一下,會輸出真實的內存占用情況,而函數有封裝,會處理成用戶想要看到的內容。
帶#的肯定是預編譯指令了;sizeof為操作符,與+,-,這一類的一樣,malloc為函數,參數為字節數,返回一個void
指針。

6. 繼承

一個派生類繼承了所有的基類方法,但下列情況除外:

  • 基類的構造函數、析構函數和拷貝構造函數。
  • 基類的重載運算符。
  • 基類的友元函數。

公有繼承(public):當一個類派生自公有基類時,基類的公有成員也是派生類的公有成員,基類的保護成員也是派生類的保護成員,基類的私有成員不能直接被派生類訪問,但是可以通過調用基類的公有和保護成員來訪問。

保護繼承(protected): 當一個類派生自保護基類時,基類的公有和保護成員將成為派生類的保護成員。

私有繼承(private):當一個類派生自私有基類時,基類的公有和保護成員將成為派生類的私有成員。

7. 打印時格式化字符串

“-6.2e”的意思:“6”表示要輸出的字符的最小數目。如果輸出的值短于該數,結果會用空格填充(跟對齊方式有關)。

如果輸出的值長于該數,結果也不會被截斷。“.2”表示輸出2位小數(四舍五入),不足時后面添0;對字符串,表示截取2個字符。“e”表示用指數形式輸出。“-”表示在數據不足指定位數時,采用左對齊方式,即數字(字符)往左靠。默認為右對齊。

所以218.83指數表示,2位小數為2.19e+02

在"%"和字母之間***數字表示最大場寬。例如: %3d 表示輸出3位整型數, 不夠3位右對齊。%9.2f 表示輸出場寬為9的浮點數, 其中小數位為2, 整數位為6,小數點占一位, 不夠9位右對齊。%8s 表示輸出8個字符的字符串, 不夠8個字符右對齊。

如果字符串的長度、或整型數位數超過說明的場寬, 將按其實際長度輸出。但對浮點數, 若整數部分位數超過了說明的整數位寬度, 將按實際整數位輸出;若小數部分位數超過了說明的小數位寬度, 則按說明的寬度以四舍五入輸出。

另外, 若想在輸出值前加一些0, 就應在場寬項前加個0。例如: %04d 表示在輸出一個小于4位的數值時, 將在前面補0使其總寬度為4位。如果用浮點數表示字符或整型量的輸出格式, 小數點后的數字代表最大寬度,小數點前的數字代表最小寬度。

例如: %6.9s 表示顯示一個長度不小于6且不大于9的字符串。若大于9, 則第9個字符以后的內容將被刪除。

可以在"%"和字母之間加小寫字母l, 表示輸出的是長型數。
例如: %ld 表示輸出long整數%lf 表示輸出double浮點數

可以控制輸出左對齊或右對齊, 即在"%“和字母之間加入一個”-" 號可
說明輸出為左對齊, 否則為右對齊。例如: %-7d 表示輸出7位整數左對齊%-10s表示輸出10個字符左對齊

8. 浮點數

一個浮點數由三部分組成:符號位S、指數部分E(階碼)以及尾數部分M。

單精度浮點數(float)總共用32位來表示浮點數,其中尾數用23位存儲,加上小數點前有一位隱藏的1(IEEE754規約數表示法),2^(23+1) = 16777216。因為 10^7 < 16777216 < 10^8,所以說單精度浮點數的有效位數是7位。考慮到第7位可能的四舍五入問題,所以單精度最少有6位有效數字(最小尺寸)。

同樣地:雙精度浮點數(double)總共用64位來表示浮點數,其中尾數用52位存儲, 2^(52+1) = 9007199254740992,10^16 < 9007199254740992 < 10^17,所以雙精度的有效位數是16位。同樣四舍五入,最少15位

9. 友元

友元是一種定義在類外部的普通函數,但它需要在類體內進行說明,為了與該類的成員函數加以區別,在說明時前面加以關鍵字friend。

友元不是成員函數,但是它可以訪問類中的私有成員。

友元的作用在于提高程序的運行效率,但是,它破壞了類的封裝性和隱藏性,使得非成員函數可以訪問類的私有成員。

10. Char

char a =‘\82’,定義字符量a,char型變量值為1個字節長度,并從右側開始運算,所以a的值應為’2’

由于unsigned char的取值范圍在(0…255),i++以后i又為0了
char 整數范圍為-128到127( 0x80__0x7F),
而unsigned char 整數范圍為0到255( 0__0xFF )

總結

以上是生活随笔為你收集整理的C++知识点打结(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

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