zoukankan      html  css  js  c++  java
  • (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;

    }

     

     

  • 相关阅读:
    观察者模式
    字符串操作函数
    位域结构体的字节对齐
    备忘任务
    Linux编程下EAGAIN和EINTR宏的含义及处理
    Linux 中write()函数的出错情况及处理
    Nginx配置配置文件nginx.conf的设置
    Linux编程获取本地IP
    redis与memcached比较
    TCP通讯socket自定义协议的实现
  • 原文地址:https://www.cnblogs.com/ArrozZhu/p/8377688.html
Copyright © 2011-2022 走看看