大家好,我是寂寞余香,目前是武汉某高校的研一新生,今天开始正式学习编程。虽说今天才开始,但相信和大多数非计算机的理工科专业大学生一样,即便不是计算机专业,却也早在本科阶段的课堂上就接触到C语言的相关知识。我的本科专业是学机械的,但由于方向偏制造,与计算机编程关联不大,因此在获得C语言二级证书后便早早将其弃之不顾,直到面临毕业苦于工作难找,自身又无一技之长,无奈加入考研大军的队伍。在这个信息化高速发展的时代,掌握一门编程语言是一件百利而无一害的事情,对于目前的我而言不仅能为我接下来的学习研究提供帮助,同时也拓宽了我未来的就业道路,这也是本次标题名为重逢C语言的原因。在此,希望以一名过来人的身份提醒还在本科阶段学习的同学们,眼光要放长远,考试成绩固然重要,但在实践中学习探索,真正将专业知识融会贯通并应用到实际工作中更为重要,切勿像我一般佛系,过早地躺平。躺平容易,站时难!
学习计划
即便之前有过编程的学习经历,但我依旧想以空杯心态,从最基础的入门重新开始学习,每天最少利用两小时的时间全身心地投入到编程学习中,通过阅读相关书籍、学习教学视频结合每日的代码编辑,不断夯实基础。
学习小结 1、第一个C语言程序
编译器:VS2019
要求:输出hello world
#include//头文件的包含 int main() //int表示函数运行后返回一个整型 { printf("hello worldn "); //函数体;printf是一个库函数,用来按照某种指定的格式来打印;库函数的使用得包含一个头文件stdio.h return 0; }
写C语言代码时,首先要知道的就是main函数,程序都是从mian函数的第一行开始执行,在VS2019中按下F10可以看到代码是从mian函数的第一行开始执行的。main函数也叫主函数 有且仅有一个,只能出现一次(在一个工程文件中,不仅是在一个源文件中)。
2、数据类型char 字符数据类型 (字符使用单引号引起来的,字符串则是双引号)
short 短整型(short int)
int 整形
long 长整型 (long int)
long long 更长的整形
float 单精度浮点数 (float pai = 3.14f; //默认double类型,因此加f)
double 双精度浮点数 (double pai = 3.141592653;)
#includeint main() { //关键字:sizeof c语言中sizeof是用来计算变量或者使用类型创建的变量的大小,单位是字节-byte //%d - 打印一个10进制整数 printf("%dn", sizeof(char)); //1 printf("%dn", sizeof(short)); //2 printf("%dn", sizeof(int)); //4 printf("%dn", sizeof(long)); //4 printf("%dn", sizeof(long long)); //8 printf("%dn", sizeof(float)); //4 printf("%dn", sizeof(double)); //8 return 0; }
计算机存放一个二进制位时需要1比特;(8bit=1byte)
有几个比特位就能表示2的几次方种数字。
3、变量、常量c语言中为了描述变化的值,使用变量
c语言中为了描述不变的值,使用常量
#includeint a = 100; //全局变量 //变量在创建时,不初始化是一种不好的代码风格,当一个局部变量在不初始化的时候,它的值是随机的 int main() { printf("%dn", a); int a = 10;// 局部变量 //局部变量与全局变量的名字冲突的情况下,局部优先 printf("%dn", a); return 0; }
3.1 变量的使用
#include//stdio 标准输入输出的头文件 int main() { //2个整数相加 int num1 = 0; int num2 = 0; int sum = 0; //输入2个值 scanf("%d %d", &num1, &num2); //scanf是c语言提供的一个输入函数 //& ——取地址 sum = num1 + num2; //int sum = num1 + num2; //老编译器无法实现 //C99标准之前有一个规定:变要在创建在当前代码块的最前面 //C99之后的语法就支持了:变量在哪里使用,就在哪里定义 printf("%dn", sum); return 0; }
此时若出现报错是因为scanf函数不安全,容易出现越界报错问题;而报错中讲到的scanf_s函数是VS编译器提供的,并不是c语言自己的,在其他的编译器下就没有scanf_s函数,也不认识这个函数。因此,当在代码中使用了scanf_s函数,该代码在其他编译器下就没法正确的编译,这就降低了代码的跨平台性,所以建议在写代码时尽量使用标准C提供的功能和函数。
解决方法:
1、通过eveything软件,在电脑中搜索一个文件:newc++file.cpp
2、由于直接在该文件中输入代码会显示没有权限,因此先将其复制拖到桌面上
3、在桌面上进行修改,添加上一句话#define _CRT_SECURE_NO_WARNINGS 1
4、然后将修改后的文件替换到原文件夹中(当然也可以将常用的头文件写入其中)
3.2 变量的作用域和生命周期
作用域
#includeint g = 100; void test() { printf("test: g: %dn", g); } int main() { printf("g: %dn", g); test(); int a = 10; { int b = 20; printf("%dn", b); printf("1: %dn", a); printf("g: %dn", g); } //printf("%dn",b) printf("2: %dn", a); printf("g: %dn", g); return 0; }
局部变量的作用域:变量所在的局部范围
全局变量的作用域:整个工程
生命周期
局部变量:进入局部变量所在的范围,生命周期开始;出局部变量所在范围的范围的时候,生命周期结束
全局变量:就是整个程序的生命周期



