提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、define定义常量和宏
1.define 定义常量
//定义标识符常量
#define MAX 1000
int main()
{
printf("%d的\n",MAX);
return 0;
}
2.define 定义宏
#define ADD(x,y) x+y
int main()
{
printf("%d\n",ADD(2,3));
return 0;
}
宏是可被替换的x的2被替换成4*2的值,
//把x/y括起来把他们看成两个独立的表达式,再把这个宏体一起括起来,看成一个整体,然后乘4时就会时乘里面相加的结果。
#define ADD(x,y) ((x)+(y))
int main()
{
printf("%d\n",4*ADD(2,3));
return 0;
}
二、指针
1.内存
内存时电脑上特别重要的存储器,计算机中所有程序的运行都是在内存中进行的。所以为了有效地使用内存,就把内存划分为一个个小的内存单位,每个内存单元的大小时1字节(byte)。为了能够又有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址。
2.指针
int main()
{
int a = 10;
//a在内存中要分配空间的——4个字节(byte)
printf("%p\n",&a);//专门打印地址。
//&a中的&操作符的用法,单目操作符
int * pa = &a;//pa是用来存放地址的,在C语言中pa就叫指针变量
//*说明pa是指针变量
//int 说明pa执行的对象是int类型的
return 0;
}
int main()
{
int a = 10;
int* pa = &a;
*pa = 20;//*解引用操作(单目操作符) *pa就是通过pa里面的地址,找到a的地址
printf("%d\n",a);
return 0;
}
3.指针变量的大小
int main()
{
//指针的大小是相同的!
//指针需要多大空间,取决于地址的存储需要多大空间。
//32位 32bit——4byte//32的系统指针大小都是4byte
//64位 64bit——8byte//64的系统指针大小都是8byte
printf("%d\n",sizeof(char*));
printf("%d\n",sizeof(short*));
printf("%d\n",sizeof(int*));
printf("%d\n",sizeof(long*));
printf("%d\n",sizeof(float*));
printf("%d\n",sizeof(double*));
}