const修飾子
Cでは、我々は、使用する傾向 に#defineを 例えば、定数を定義します:
# define ABC=100
とにかく、プログラムの背後にあるのはこの、ABC 識別子のは、代わりに100の使用されています。
しかし、ガチョウ、プリコンパイル
{
PSは:また、プリコンパイル済みのとして知られている、コードがやるべき仕事の置換テキストです。#ファイルなど、命令処理の最初のコードに含まれるの#includeをコピーし、#は、DEFINE マクロ定義された代替物、条件付きコンパイルを等
}
その後、プログラムはもう持っていないだろう ABC 識別子のことを。ので ABCは 変数ではない、ないタイプは、ストレージユニット、エラーが発生しやすいを取るません。
だから、使用、中にC ++ のconst 修飾子は、定数を定義します。
例えば:
const int ABC=100;
それは変更することができないが、この定数は、ABCタイプは、記憶部まで、アドレスがそれへのポインタを使用することが可能です。
実際には、同様の効果がCONSTと#を定義しますが、C ++で、それが不安を解消します。例えば:
#include <iostream>
using namespace std;
int main()
{
int a=1;
#define T1 a+a
#define T2 T1-T1
cout << "T2 is "<< T2 <<endl;
return 0;
}
一見から、その出力を思わ:
T2は0であります
しかし、答えはようCB上で実行されている、明らかに間違っています:
T2は2であります
その理由は、7行目の文を説明するために、そのC ++です。
coutの<< << + A- A + <<てendlは "T2はあります"。
我々はconstの使用している場合は交換してください:
#include <iostream>
using namespace std;
int main()
{
int a=1;
const T1 a+a
const T2 T1-T1
cout << "T2 is "<< T2 <<endl;
return 0;
}
次のような結果を操作します:
だから、私たちの期待される結果と一致しました。