1.宏定义:
在C语言源程序中,允许用一个标识符来表示一个字符串,称为宏,宏定义是由源程序中的宏定义命令完成的,宏替换是由预处理程序自动完成的。宏定义是C提供的三种预处理功能的其中一种,这三种预处理包括:宏定义、文件包含、条件编译。
#define ADD (X,Y) X+Y
int main()
{
printf("%d\n",ADD(2,3));
return 0;
}
运行结果:5
若将ADD(2,3)改为4*ADD(2,3)运行结果并不是20,为什么?
#define ADD (X,Y) X+Y
int main()
{
printf("%d\n",4*ADD(2,3));
return 0;
}
运行结果为11,因为内部运算转化为:4*2+3=11
2.指针的含义:
指针就是变量在内存中的地址,通过内存地址找到变量的值,例如:int a=100;&a表示a变量在内存中的地址,a表示所对应的值.
int main()
{
int a=10;//a在内存中要分配kong--4个字节
printf("%p\n",&a);//%p专门用来打印地址的
int*pa;//pa是用来存放地址的,在C语言中pa叫指针变量
return 0;
}
*说明pa是指针变量,而int说明pa指向的对象是int类型
举一反三:
char=ch='w';
char*pc=&ch;
#include <stdio.h>
int main()
{
int num=10;
int *p=#
*p=20;//解引用操作,*pa就是通过pa里面的地址找到a进行改变
printf("%d\n",a);
return 0;
}
指针的大小是相同的!
指针是用来存放地址的!
指针需要多大空间,取决于地址的存储需要多大空间.
32位32bit - 4byte
64位64bit - 8byte .
关于指针所占内存:不管定义什么类型都是4个字节也就是32个比特位,在32位计算机中