1.1define定义常量和宏
define 定义符号(定义常量)//define 定义标识符常量#define MAX 1000define 定义宏(宏是有参数的,参数用来替换)
//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 赋值给 areturn 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; //成绩};
初始化如下: