c语言|C语言define和初级指针
目录
- define
-
- define定义常量
- define定义宏
- 指针
define define定义常量
#define NUM 1000//定义常量
int main() { int a = NUM;
printf("%d\n", a);
return 0;
}
文章图片
define定义宏
int Add(int x, int y) { int z = x + y;
return z;
}//宏-#define可以定义宏
#define ADD(X,Y)((X)+(Y))int main() { int a = 10;
int b = 20;
//函数
int sum1 = Add(a, b);
int sum2 = ADD(a, b);
//int sum2 = ((a)+(b));
printf("%d\n", sum1);
printf("%d\n", sum2);
return 0;
}
文章图片
指针
%s:字符串
%c:字符
%d:有符号的整形
%f:单精度浮点型
%lf:双精度浮点型
%p:地址--地址的十六进制表示形式
//指针
int main() { int a = 10;
//printf("%p\n", &a);
//取出ade地址,地址是用十六进制表示的
//&a 的时候,取的是a所占内存中4个字节中第一个字节的地址 int* pa = &a;
//pa是整型指针变量
*pa = 20;
//*解引用操作符 printf("%d\n", a);
char ch = 'w';
char* pc = &ch;
//指针是变量,用来存放变量的地址
return 0;
}
文章图片
打印变量地址:
int main() { int a = 10;
printf("%p\n", &a);
return 0;
}
文章图片
任何类型的指针变量在32位机器上占4个字节,在64位机器上占8个字节:
int main() { char ch = 'w';
char* pc = &ch;
printf("%d\n", sizeof(pc));
//指针存的是地址,地址在内存中要开辟空间
//32位环境下:指针大小是4字节
//64位环境下,指针大小是8个字节
return 0;
}
上面是在32位机器上的运行结果:
文章图片
32位机器上运行:
int main() { printf("%d\n", sizeof(char*));
printf("%d\n", sizeof(int*));
printf("%d\n", sizeof(double*));
printf("%d\n", sizeof(float*));
printf("%d\n", sizeof(short*));
return 0;
}
文章图片
64位机器上运行:
int main() { printf("%d\n", sizeof(char*));
printf("%d\n", sizeof(int*));
printf("%d\n", sizeof(double*));
printf("%d\n", sizeof(float*));
printf("%d\n", sizeof(short*));
return 0;
}
【c语言|C语言define和初级指针】
文章图片
总结:
- 指针变量寸的是变量的地址
- i
nt* pa = &a;
&a表示取地址,int*表示整形的指针变量 - 32位机器上的指针占4个字节,64位机器上的指针占8个字节
推荐阅读
- 急于表达——往往欲速则不达
- 第三节|第三节 快乐和幸福(12)
- 20170612时间和注意力开销记录
- 2.6|2.6 Photoshop操作步骤的撤消和重做 [Ps教程]
- 对称加密和非对称加密的区别
- 眼光要放高远
- 樱花雨
- 前任
- 2020-04-07vue中Axios的封装和API接口的管理
- 烦恼和幸福