C++ は C 言語を強化します - 型の強化
1. register キーワードの強化
register キーワードは、コンパイラに変数をレジスタに直接配置するように要求します。これは高速です。
C 言語では、レジスターによって変更された変数はアドレスを取得できませんが、C++ ではアドレスを取得できます。
2. 変数検出の強化
C 言語では、同じ名前の複数のグローバル変数を繰り返し定義することができます。C++ では、同じ名前の複数のグローバル変数を定義することはできません。
3. C++ のすべての変数と関数には型が必要です
C 言語では、
int f( ); は、戻り値が int で、任意のパラメーターを受け入れる関数を意味します
int f(void); は、戻り値を意味しますint
のパラメータなし関数 C++
int f( ); と int f(void) は同じ意味で、どちらも戻り値が int
4 のパラメータなし関数を表します
例: a< ; b ? a : b )= 30;
違い: C言語は変数の値を返しますが、C++言語は変数そのものを返します
C言語の三項演算子は変数の値を返します。 C++ の三項演算子を使用して変数自体を直接返すため、プログラム内のどこにでも出現できます
注: 三項演算子が返す可能性のある値の 1 つが定数値である場合、それを左辺値として使用することはできません(a < b ? 1 :b ) = 30; を使用すると
C 言語は C++ と同様の機能をどのようにサポートしますか?
====> 左辺値であるための条件: メモリ空間がなければなりません; C++ コンパイラは、プログラマがアドレスを取得するのに役立つだけです
1.const 修飾子の理解
関数: オブジェクトを定数に変換します、読み取り専用。
int main() { const int a;// 1 第1个第2个意思一样 代表一个常整形数 int const b;// 2 const int *c; // 3 第3个 c是一个指向常整形数的指针(所指向的内存数据不能被修改,但是本身可以修改) int * const d; //4 第4个 d 常指针(指针变量不能被修改,但是它所指向内存空间可以被修改) const int * const e ; //5 第5个 e一个指向常整形的常指针(指针和它所指向的内存空间,均不能被修改) return 0; }
const int bufSize=512;bufSize初始化之后就无法进行修改了。 1)在C++中,const符号表原理:存储方式是符号表即key value key value bufSize 5122. C++ コンパイラーが const 定数を処理する方法: 定数が宣言されると、その定数はシンボル テーブルに配置され、定数はその定数の値に直接置き換えられます。シンボルテーブル。 結論: C言語のconst変数とC++の違い
C言語のconst変数は読み取り専用変数であり、独自の記憶領域を持っています
C++のconst定数は記憶領域を割り当てる場合と割り当てない場合があります
いつconst 定数はグローバルであり、他のファイルで使用する必要があります
& 演算子を使用して const 定数のアドレスを取得する場合
2) const と #define の類似点と相違点は同じです
: どちらも可能です定数として使用できます
異なる: const 定数はコンパイラによって処理され、型検出とスコープ チェックが提供され、マクロ定義はプリプロセッサによって処理され、単純なテキスト置換が実行されます。
上記は C++ の復習ポイント (1) のまとめです。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。