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; //成绩
};
初始化如下: