大学の授業C ++の知識(III)

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;
}

次のような結果を操作します:

だから、私たちの期待される結果と一致しました。

 

 

 

 

发布了19 篇原创文章 · 获赞 9 · 访问量 7450

おすすめ

転載: blog.csdn.net/Cryu_xuan/article/details/83092707