C的变量与常量

  1. 变量
    1. 变量值简单交换
  • 常量
  • 常变量
  • 变量

    使用printf()来打印变量的值。
    要打印a中的值10:printf(“%d\n”,a);

    %d代表十进制输出一个整数。

    变量值简单交换

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include<stdio.h>
    int main()
    {
    int a,b,tmp;
    a = 1;
    b = 2;
    tmp = a;
    a = b;
    b = tmp;
    printf("a is %d\n",a);
    printf("b is %d\n",b);
    return 0;
    }

    常量

    在程序执行过程中,其值不被改变的量

    直接常量:直接引用的数字等;
    符号常量:使用标识符来代替一个数字(常见的:宏定义常量 和 常变量)
    宏定义:又称为宏代换,是定义一个标识符来代表一个值或一个表达式

    1
    #define XXXX 10

    宏定义也可定义表达式:

    1
    2
    #define ADD(a,b) (a)+(b)
    #define MUL(a,b) (a)*(b)

    注意:如果要使用宏定义来代替表达式,需要在每个表达式的变量都加上括号以防止出现计算错误

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    #include<stdio.h>
    #define FUN1(a,b) a * b
    #define FUN2(a,b) (a)*(b)
    int main()
    {
    int a=2;
    int b=3;
    printf("%d\n",FUN1(a+b,b+a));
    printf("%d\n",FUN2(a+b,b+a));
    return 0;
    }
    执行程序,输出:
    13
    25
    答案:
    FUN1的宏替换会变成:a+b*b+a
    FUN2的宏替换会变成:(a+b)*(b+a)
    因此两个宏替换会得到不同的结果。

    常变量

    变量值不可改变的量,使用const修饰

    注意:const修饰后的变量会变成只读,因此无法再次赋值。因此初始化常变量需要在定义时直接赋值。


    常变量与宏定义常量的区别:宏定义常量是在预处理阶段,使用宏名来代替宏值。而常变量是在程序运行时,程序在内存分配的一个变量,只不过变量不允许再次赋值。


    常量与后缀:
    有时候我们需要显式地表示出常量的类型,这时候我们可以在常量后加后缀
    u或U:unsigned类型,如123u
    l或L:long类型,如123l
    ll或LL:long long类型,如123456ll
    f或F:float类型,如0.123f


    转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 yuanshaoqiancom@gmail.com

    文章标题:C的变量与常量

    本文作者:Mr.Yuan

    发布时间:2019-02-23, 21:04:16

    最后更新:2019-12-05, 17:56:13

    原始链接:https://yuanshaoqian.github.io/2019/02/23/C的变量与常量/

    版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

    目录
    ×

    喜欢就点赞,疼爱就打赏