1.函式的引數是 引用
#include using namespace std;
void fn(int& x)
int main()
}
最後輸出的結果是:
11,21
32,53
第二次輸出結果不是22和43,關鍵在於int &x
如果是函式的參數列是int x,結果就會是22和43了。
2.三維的char字元陣列
#include using namespace std;
int main() ;
cout << t[1][2][3];
}
輸出結果是h
t是指兩行三列最長5個字元的字元陣列。因為以\0結束,所以賦值的時候只能輸入4個字元。
3.用一維指標查詢二維陣列的最大元素
#include using namespace std;
void max(int* a, int m, int n)
cout << "max=" << max << ",row=" << row << ",column=" << column << endl;
}int main()
,, };
max(& a[0][0], 3, 4); //第三空
getchar();
return 0;
}
函式max的形參是一維指標,所以傳引數的時候,需要傳&a[0][0],因為陣列名a是二維指標。
此題相當於
#include using namespace std;
int main() ;
//一維指標
int* b = &a[0][0];
cout << *(b + 5)<4.建構函式的呼叫次序是基類、物件成員所屬類、自己所屬類的建構函式,析構順序剛好相反。
#include using namespace std;
class a
~a()
};class b
~b()
};class c :public b
c(int i, int j, int k) :a(i), b(j), c(k)
~c()
};void main()
輸出結果:
b=2a=1
c=3c=3
a=1b=2
5.基類的指標指向派生類的物件。
#include using namespace std;
class a
~a()
};class b :public a
~b()
};int main()
輸出結果:
呼叫建構函式a0
呼叫建構函式b5
a=0此時,如果要刪掉p需要用delete,因為基類的析構函式不是虛函式,如果用delete刪掉p,只會呼叫基類的析構函式,不會呼叫派生類的析構函式。
6.虛基類會比非虛基類先呼叫建構函式,最後組合類的建構函式。
#include using namespace std;
class obj1
};class base1
};class base2
};class base3
};class derived : public base1, virtual public base2, public base3
protected:
obj1 obj1;
};void main()
輸出結果:
base2
base1
base3
obj1
c易錯題(一)
刷題也有幾天了,把自己刷題過程的錯題整理出來,以便以後不會再犯同樣的錯誤 1.已知int a 3 4 則下列可以表示a 1 2 元素的值的是 a.a 1 2 b.a 1 2 c.a 0 1 2 d.a 0 1 這道題看著不是很難,差不多可以選出a,但是卻不一定理解下邊的選項為啥錯。下邊我來乙個乙個分...
前端一些易錯題總結
const 可以先宣告後賦值麼?const a 答 不可以,會報錯uncaught syntaxerror missing initializer in const declaration let 可以先使用後宣告麼?console.log a let a 12 答 不可以,uncaught ref...
SQL測驗易錯題
sql 測驗 結果 17 20 您的回答 1.sql 指的是?您的回答 structured query language 2.哪個 sql 語句用於從資料庫中提取資料?您的回答 select 3.哪條 sql 語句用於更新資料庫中的資料?您的回答 update 4.哪條 sql 語句用於刪除資料庫...