C语言——初识C语言(define定义常量和宏,指针,结构体)

1.1define定义常量和宏

  •  define    定义符号(定义常量)
//define 定义标识符常量
#define MAX 1000
  •  define    定义宏(宏是有参数的,参数用来替换)
//define定义宏

#define ADD(x, y) ((x)+(y))

#include <stdio.h>
int main()
{
    int sum = ADD(2, 3);
    printf("sum = %d\n", sum);
    
    sum = 10*ADD(2, 3);
    printf("sum = %d\n", sum);
    
    return 0;
}

2.1指针(地址)

我们在了解指针之前,就必须知道——<内存>

内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的

所以为了有效的使用内存,就把内存划分成一个个小的内存单元

那么一个个小小的内存单元他们是怎么编号的呢?一个内存的单元到底是多大呢?

        1:日常生活中,我们的计算机,要么是32位,要么是64位。

我们拿32位举例:32位 ( 指的是它有32个地址线  )这里的地址线,指的就是物理线,当他通电的时候,要么显示1要么显示0。

        在这样的一个过程中:电信号转化成了数字信号(0和1组成的二进制序列)

因此我们可以知道,再是32位的时候,他的内存单元个数是2的32次方。这样依次编号。

        2:在这里不妨做一个假设:假设一个内存单元的大小是 1bit。

        那么2的32次方就有    42  9496  7296个bit

        化成字节就是 5  3687  0912个byte

        化成KB就是  524 288KB

        化成MB就是  512MB

        化成GB就是  0.5GB

从中我们可以发现一个内存单元很小的,因此通过演算,最终规定一个内存单元的大小被称为一个字节

因此,我们来看代码:

int main()
{
    int a = 10;  //a在内存中要分配空间————4个字节
    printf("%p\n",&a);   // %p是专门用来打印地址的

    int * pa = &a;
    // pa是用来存放内存上的地址,在C语言中 pa 叫做指针变量
    // * 说明 pa 是指针
    // int 说明 pa 指向的对象是 int 类型

    *pa = 20;
    // 解引用操作
    // *pa 是通过 pa 里面的地址找到 a ,并且将 20 赋值给 a
    
    return 0;
}

2.2:指针的大小

我们都知道,数据类型包括

char                 //字符数据类型

short               //短整型

int                    //整形

long                 //长整型

long long        //更长的整形

float                 // 单精度浮点数

double             // 双精度浮点数

那么他们在使用指针的时候,他们的大小到底是多少?

我们都知道,指针是用来存放地址的

指针需要多大的空间,取决于地址的存储需要多大的空间

        32位——32bit——4byte

        64位——64bit——8byte

因此:指针大小在32位平台是4个字节,64位平台是8个字节。


3.1:结构体

创建学生的一个结构体,代码如下:

struct Stu
{
    char name[20];
    int age;      
    char sorce;  //成绩
};

初始化如下: