• (C/C++学习笔记) 五. 常变量(只读变量)和宏


    五. 常变量(只读变量)和宏

    ● 常变量

    常变量

    #include <iostream.h>                    //预处理文件

        

    int main()

    {

        const double pi=3.14;                     //定义圆周率常量pi, pi是一个"常变量(const variable)"

        double radius;                            //定义半径变量radius

        double area;                            //定义面积变量area

        cout<<"Please input radius"<<endl;        

        cin>>radius;                            //把输入的数值作为cin这个预定义的"输入流对象",并将之作为半径

        area=pi*radius*radius;                    //计算面积

        cout<<"area of circle of radius " << radius << " is "<<area<<" ";    //输出结果

        return 0;

    }

       

    //也可以在声明区定义一个"符号常量(symbolic constant)",以取代上面"常变量"

    #include <iostream.h>                    //预处理文件

    #define PI 3.14        //PI是符号常量, 注意,预编译指令(preprocessing instruction)末尾没有分号,并且"符号常量"名一般大写, 这也被称为"不带参数的宏定义"

                            

    int main()

    {

        double radius;                            //定义半径变量radius

        double area;                            //定义面积变量area

        cout<<"Please input radius"<<endl;        

        cin>>radius;                            //把输入的数值作为cin这个预定义的"输入流对象",并将之作为半径

        area=PI*radius*radius;                    //计算面积

        cout<<"area of circle of radius " << radius << " is "<<area<<" ";    //输出结果

        return 0;

    }

     

    C语言更多使用#define来定义常量(符号常量),c++更多使用const来定义常量(常变量)。

    • 对于const的作用, "限定只读"相比"定义常数"是更专业的说法.

    注意:

    在定义常变量时一定要赋初值。

    例如:const float PI//错误,定义时没有给出初值

    常变量不是变量,在程序中间不能更新其值。

    • 例如:PI= 3.14159//错误!常量不能被改变

     

    ● 宏

    宏是在编译期间起作用,还没到运行期间,所以没有内存分配这个说法

    ①不带参数的宏定义:

    #define 宏名 替换文本, : #define <macro> <replacement name>

    例如:

    #define PI 3.14

    ②带参数的宏定义:

    #define <宏名><参数表><宏体> //记住, 在编程学习中遇到的尖括号一般都不用写出来, 也可写成:

    #define 宏名(参数表) 宏体

    例如:

    #define MEAN(X,Y) (((x)+(y))/2)        //括号不能少, 否则有可能出错

    #include <iostream.h>

    #define SQUARE(X) X*X

     

    int main()

    {

        int a = SQUARE(2);

        cout << a << endl;

        return 0;

    }

     

     

  • 相关阅读:
    在cnBlogs上使用MarsEdit发blog
    如何将netbeans生成的项目文件打包发布到其他的Tomcat服务器上?
    Android activity中单击返回键或home键彻底退出应用
    C语言基础之自增自减运算符及注意事项
    [给自己扫盲]名词解释——LAMP、MEAN、Web应用框架等
    第一个Mac程序——倒计时v1&v2
    iOS开发 Swift开发数独游戏(二)数独题目的生成
    解决ADT大量出现"Unexpected value from nativeGetEnabledTags: 0"的问题
    C语言基础之指针
    [给自己扫盲]Node.js 究竟是什么?
  • 原文地址:https://www.cnblogs.com/ArrozZhu/p/8377688.html
Copyright © 2020-2023  润新知