C语言入门第一天主要是建立编译环境和书籍选择
编译器:VSCode以及cmd指令操作结合使用
书籍选择:C Primer plus 第五版(简单易懂,需要先吃透一本书,再言其他)
以下是个人闲暇学习敲打的代码,在一个.C文件中不断运行主程序,记录C语言入门的代码记录:
#include <stdio.h>
// void name(void);
//printf函数使用
/* int main (void)
{
int num;
num = 18;
// printf("hello world \n");
// printf("my name is bom.\n");
// printf("what's your name?\n");
// printf("my lucky num is %d.but your num is %d.\n",num,num + num);
printf("my lucky num is %#o.but your num is %#x.\n",num,num + num); //以8进制和16进制打印结果
// name();
return 0;
} */
/* void name(void)
{
float today_time;
today_time = 11.03;
printf("today is a good day.\n");
printf("today_time is %.2f\n",today_time); //只打印2位小数的格式是%.2f,打印3位是%.3f
} */
//整数溢出
/* int main(void)
{
int i = 2147483647;
unsigned int j = 4294967295;
printf("%d,%d,%d\n",i,i+1,i+2);
// printf("%d,%d,%d\n",j,j+1,j+2);
printf("%u,%u,%u\n",j,j+1,j+2); //无符号整形打印格式%u
return 0;
} */
//打印数值格式不同,printf调用数值不同
//使用printf()语句时,切记每个要显示的值都必须对应自己的格式说明书,并且显示值类型腰痛说明符相匹配
/* int main(void)
{
unsigned int un = 3000000000; //超出数值范围,无符号和有符号打印数值不一致
unsigned int on = 10; //对于小一些整数,无符号和有符号打印数值一致
short end = 200; // short类型打印格式%hd
long big = 65537; // long类型打印格式%ld
long long verybig = 12345678908642; // long类型打印格式%lld
printf("un = %u and not %d\n",un,un);
printf("on = %u and not %d\n",on,on);
printf("end = %hd and not %d\n",end,end); // short类型自动转换为int类型,int类型数值是计算机处理最快捷方便的整数类型
printf("big = %ld and not %hd\n",big,big); //long类型是32位数字,而short类型是16数字,将65537转换为32位二进制,发现低16位有效只有1,高16位未计入
printf("verybig = %lld and not %ld\n",verybig,verybig); //%ld只打印后低32位数值,相比于%lld裁剪了一次
return 0;
} */
//char类型 -> char却也是整数类型,在ASCII码中,数值65代表的就是大写字母A
/* int main(void)
{
char ch; //char类型打印格式%c
printf("please enter a character:\n");
scanf("%c", &ch); //&取地址操作符,取出ch在内存中的地址,即在键盘上敲入任意字符,会将该字符存在ch的地址上,&来取地址
printf("The code is %c.%d\n",ch,ch); //The code is A.65
return 0;
} */
//float 是6位小数
/* int main(void)
{
float aboat = 32000.0;
double abet = 2.14e9;
float toobig = 3.4E38 * 100.0f; // 浮点数溢出
printf("%f can be written %e\n",aboat,aboat);
printf("%f can be written %e\n",abet,abet);
printf("%f\n",toobig); //打印结果1.#INF00代表上溢
return 0;
} */
//sizeof运算符
/* int main(void)
{
printf("Type int has a size of %u\n",sizeof(int)); //占用空间大小是无符号整数,格式%u
printf("Type char has a size of %u\n",sizeof(char));
printf("Type long has a size of %u\n",sizeof(long));
printf("Type double has a size of %u\n",sizeof(double));
return 0;
} */
//数据类型运用不当,数据精度损失
/* int main(void)
{
int math_e = 2.718;
float math_pi = 3.1415926;
printf("math_e is %d\n",math_e); //math_e is 2
printf("math_pi is %f\n",math_pi); //math_pi is 3.141593
return 0;
} */
//printf语句将输出传递给一个被称为缓冲区(buffer)的中介存储区域,缓冲区中的内容再不断地被传输给屏幕。以下情况输出
//1.缓冲区满时;2.遇到换行符时;3.需要输入时;4.程序运行结束时
int main(void)
{
printf("hello world!"); //不打印hello world
while(1); //不满足四个条件,不会打印
return 0;
}