#include<stdio.h>
int num_1 = 36;//全局变量,定义在{}外
int main()//主函数-程序的入口,有且仅有一个
{
int num_2 = 66;//局部变量,定义在{}内
short int age = 20;//声明变量,向内存申请2个字节=16bit位的空间存放20
char ch = 'A';
float ace = 10.2f;//小数常量默认为double类型,定义float变量后加f,否则警告 C4305“初始化”: 从“double”到“float”截断
printf("hello world\n");
printf("hello 世界\n");//printf - print function 打印函数,C语言本身提供给我们使用的函数,包含在stdio.h中
printf("%c\n",ch);//%c -打印字符格式的数据,以字符的形式打印ch
printf("%d\n", age);//%d - 打印整型十进制的数据
printf("%f\n\n", ace);//%f %lf - 打印浮点数
//%p - 以地址的形式打印
//%x - 打印十六进制的数字
printf("%lld\n", sizeof(char));//1
printf("%lld\n", sizeof(int));//4
printf("%lld\n", sizeof(short));//2
printf("%lld\n", sizeof(long));//4
printf("%lld\n", sizeof(long long));//8
printf("%lld\n", sizeof(float));//4
printf("%lld\n\n", sizeof(double));//8
//这里如果用%d会警告“C6328 大小不匹配:已将‘unsigned__int64’作为_Param_(2)传递,但需要使用‘int’来调用‘printf’”
//占位符%d在格式化输入输出中代表int(4bytes),%ld代表long int(>=4bytes)%lld代表long long int(8bytes)
//C语言标准中规定sizeof(long)>=sizeof(int)
//问题出在sizeof上,它返回的是一个64位(8bytes)的无符号整型,所以占位符应该是 %lld
//补充:sizeof不是函数,而是单目运算符,C / C++语言编译器在预编译阶段的时候就已经处理完了sizeof的问题,也就是说sizeof类似于宏定义,
//sizeof 一般形式为:sizeof(object),也可以sizeof var_char,不过大部分programer习惯用sizeof(),其运算符的含义是:求出对象在计算机内存中所占用的字节数。
//但是在x86环境下debug不用
int num_1 = 100;
printf("%d\n", num_1);//局部变量声明和全局变量声明可以同时存在,但是值局部变量优先,建议不要相同
{int num_3 = 99;
}//printf("%d\n", num_3);局部变量只能在所声明的{}内使用
int x = 0;
int y = 0;
int sum = 0;//C语言语法规定,变量要定义在当前代码块的最前面
scanf_s("%d%d", &x, &y);//输入数据-使用输入函数scanf,&取地址符号,输入两个整型放入x,y指向的地址中
sum = x + y;
printf("sum=%d\n", sum);
extern int g_val;
printf("g_val=%d\n", g_val);//extern声明外部源文件的
//局部变量的作用域是变量所在的局部范围,全局变量的作用域是整个工程
//局部变量的生命周期是:进入作用域到出作用域;全局变量的生命周期是:整个程序的生命周期
return 0;//返回0
}
//int是整型的意思,main前面的int表示main函数调用返回一个整型值
//#是一种指令形式,include包含
//std - 标准 standard;i - input;o - output