C语言知识笔记

使用 #define 定义常量

  1. 介绍
    #define 来定义常量,也叫作宏定义,就是用一个标识符来表示一个常量值,如果在后面的代码中出现了该标识符,那么编译时就全部替换成指定的常量值,即用宏体替换所有宏名,简称宏替换。

  2. #define 定义常量的格式
    #define 常量名 常量值
    注意:
    (1)不要以分号结尾,如有分号,分号会成为常量值的一部分。
    (2)#define 必须写在 main 函数的外面(有些编译器的扩展允许 #define 写在 main 函数里,但我们强烈不建议这么做)。

#include <stdio.h>

#define PI 3.14 // 定义常量 PI,常量值 3.14

int main()
{
    double area;
    double r = 1.2;
    area = PI * r * r;
    printf("面积 : %.2f", area);

    return 0;
}

// 输出结果:
// 面积:4.52

const 定义常量

#include <stdio.h>

const double PI = 3.14; // const 定义常量时,需要加分号

int main()
{
    double area;
    double r = 1.2;
    area = PI * r * r;
    printf("面积 : %.2f", area);

    return 0;
}

#define定义常量和const定义常量的区别

(1)执行时机:#define是预处理指令,在编译之前执行;const是关键字,在编译过程中执行。
(2)类型检查:#define定义常量不用指定类型,不进行类型检查,只是简单地文本替换;const定义常量需指定数据类型,会进行类型检查,类型安全性更强。

C语言中使用不同进制表示整数

#include <stdio.h>

int main()
{
    int num1 = 0b10; // 二进制
    int num2 = 210;  // 十进制
    int num3 = 0x1f; // 十六进制

    printf("num1=%d \n", num1);
    printf("num1=%d \n", num2);
    printf("num1=%d \n", num3);
    return 0;
}

/*
num1=2 
num1=210
num1=31
*/

输出格式

#include <stdio.h>

int main()
{
    int x = 100;

    printf("十进制:%d \n", x);
    printf("十六进制:%x \n", x);
    printf("十六进制(0x开头):%#x \n", x);
    printf("十六进制(0X开头):%#X \n", x);

    return 0;
    
/*
    十进制:100 
    十六进制:64 
    十六进制(0x开头):0x64 
    十六进制(0X开头):0X64
*/
}

二进制转换成十进制

image
image

整型的类型

image

关于存储大小单位:

  • bit(位):计算机中的最小存储单位,表示一个二进制位。

  • byte(字节):计算机中基本存储单元,1byte = 8bit。