一,c语言的基本数据类型
1,整型类型的基本数据类型:char(例如char中存放的是A 存放的是其ASC||值);int short;long int;long long分别占有的字节数为1//2//4//4//8
2,浮点数类型:float单精度字节占4个;double双精度字节占8个;long double双双精度VS2019占8个dev里面占12个字节
3,bool占一个字节
4 无类型void
#include<string.h>
#include<stdio.h>
int main() {
printf("char size:%d\n", sizeof(char));
printf("short size:%d\n", sizeof(short));
printf("int size:%d\n", sizeof(int));
printf("long int size:%d\n", sizeof(long int));
printf("long long size:%d\n", sizeof(long long));
printf("float size:%d\n", sizeof(float));
printf("double size:%d\n", sizeof(double));
printf("long double size:%d\n", sizeof(long double));
printf("bool size:%d\n", sizeof(bool));
//printf("void size:%d\n", sizeof(void));
return 0;
}
运行结果:
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
二,变量
1局部变量:在函数里面定义的变量,并且只能在该函数内用;
2全局变量:在函数之外定义的变量,任何函数都可以调用;
3块内变量:某一函数内的重新写的花括号内部定义的变量;
注意:当主函数中定义的变量与 全局变量重名时,调用时考虑“就近原则”;即离局部变量近调动的变量就是局部变量离全局变量近就是全局变量;如果想要使用全局变量需要用::来标识全局变量。
代码:
#include<string.h>
#include<stdio.h>
int a = 80;
int main() {
int a = 8,b = 10;
int c1,c2;
c 1= a + b;
c2=::a+b;
printf("c1的结果是:%d\nc2的结果是:%d\n", c1,c2);
return 0;
}
三scanf和scanf_s的区别
scanf()不会检查输入边界,可能造成数据溢出。
scanf_s()是scanf()的安全版本,会检查输入边界。
例如: str[5]
scanf("%s",str),如果输入abcdefgh,则会使fgh溢出进入其他地方,造成程序错误。
而scanf_s("%s",str,5),则只会接收前5个输入,其后的都无效,避免了程序的漏洞。