前言
初识C语言系列内容将会分成几篇文章,目的是想快速过一下C语言中的大部分内容,对C语言有个初步的全面认识,内容主要包括:
- 数据类型
- 变量常量
- 字符串转义符注释
- 选择语句
- 循环语句
- 函数
- 数组
- 操作符
- 常见关键字
- define定义常量和宏
- 指针
- 结构体
等初识C语言系列更新结束,将会正式开始C语言基础阶段的内容学习。
1、第一个C语言程序
对初学者来讲,学好一门编程语言 :首先要有个电脑,然后安装必须的软件,win系统就是VS,我安装的是VS2017。对于我们初学的人来讲,应首先讲学习重心放在语言本身 ,然后深入到数据结构与算法。
入门阶段不应花时间纠结用什么编程工具。安装好工具后写出第一个C语言程序,照着程序手动抄一遍,按ctrl+s保存程序,按ctrl+F5运行程序,输出Hello World!。
#include<stdio.h>
//第一个程序
int main()
{
printf("Hello World!\n");//\n表示换行
return 0;
}
2、数据类型
char //字符数据类型
short //短整型
int //整形
long //长整型
long long //更长的整形
float //单精度浮点数
double //双精度浮点数
sizeof能够读取数据类型所占的字节
#include <stdio.h>
int main()
{
printf("%d\n", sizeof(char));
printf("%d\n", sizeof(short));
printf("%d\n", sizeof(int));
printf("%d\n", sizeof(long));
printf("%d\n", sizeof(long long));
printf("%d\n", sizeof(float));
printf("%d\n", sizeof(double));
printf("%d\n", sizeof(long double));
return 0;
}
运行结果如下所示:
常用的char字符数据类型占用一个字节,int整形占用4个字节。
bit,即比特位,是计算机中最小的单位,表示为一个二进制,0或者1。byte,字节,1byte = 8bit,即1个字节由8个二进制表示,如11111111。
常用的单位还有1KB=1024byte,1MB=1024KB, 1GB=1024MB, 1TB=1024GB, 1PB=1024TB。
3、变量、常量
3.1 定义变量的方法
C语言中用常量来表示不变的值,比如:性别,身份证号码,等等。用变量来表示变化的值,如年龄、体重、工资等。
代码如下:
int age = 50;//年龄
float weight = 45.5f;//体重
char ch = 'w';//字符
上面第一行代码中:
int是关键字,表示整数类型;
age是变量名称,表示年龄;
50是数值,表示年龄;
中间的=是等号,表示赋值,将等式右边的150赋值给左边的变量age;
最后行末是以分号结尾,表示这一行结束了;
一般变量名称要有实际的表达意义,不要定义成a、b这种显得很随意,要养成良好的习惯,当然平时自己学习可以随意一点。
3.2 变量的分类
局部变量和全局变量
全部变量:定义在主函数main前面,如global。
局部变量:主函数内部,如a。
全局变量可以在主函数内重新赋值,输出结果变为2022。
当局部变量和全局变量同名的时候,局部变量优先使用。
int global = 2021;//global是全局变量,
int main()
{//主函数内部定义的变量都是局部变量
int a = 100;//局部变量
int global = 2022;//局部变量可以重新赋值
printf("%d\n", global);//
return 0;
}
3.3 变量的使用
scanf是输入,接受从控制台输入的函数,后面应用频繁。
printf是输出,将需要监视的对象输出到控制台,在以后调试程序中经常用到。
要严格按照格式写代码,避免出错。
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
printf("输入两个数: ");
//输入函数,后面会经常用到的 ,严格按格式编写
scanf("%d %d", &num1, &num2);
sum = num1 + num2;
printf("%d\n", sum);//老习惯了
return 0;
}
注意:运行有可能出现下面的报错
scanf是C语言提供的,微软的VS人文这个函数不安全,在VS 里提供 scanf_s 代替 scanf,但是这个函数不具有通用性,只有vs能识别。因此为了代码移植方便,解决办法如下:
- 使用everything 找到 newc++file.cpp ,这个文件
- 拷贝一份到桌面,打开文件,添加
#define _CRT_SECURE_NO_WARNINGS
,保存 - 再拷贝至原来的文件夹即可
以后新建工程文件的都会自动出现,也不会报错
3.4 变量的作用域和生命周期
作用域:
- 局部变量的作用域是变量所在的局部范围。
- 全局变量的作用域是整个工程。
生命周期:
- 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
- 全局变量的生命周期是:整个程序的生命周期。
int a = 100;
void test()
{
printf("test:: %d\n", a);
}
int main()
{
test();
printf("main:: %d\n", a);
return 0;
}
上面的a为全局变量,作用域在整个工程内,体现在整个代码的这个源文件都起作用。在主函数和自定义函数都能正常输出。输出结果如下所示:
下面代码中,a为局部变量,其作业域在里面的括号内,出了括号,则不起作用,printf函数显示未定义。
3.5 常量
C语言中的常量和变量的定义形式有所差异,常量分为以下几种:
- 字面常量
- const修饰的常量
- #define定义的标识符常量
- 枚举常量
enum Sex
{//都是枚举常量
MALE,//注意结尾是逗号,不是分号
FEMALE,
SECRET //没有符号
};
int main()
{
//字面常量
3.14;//字面常量
1000;//字面常量
//const修饰的常量
const float pai = 3.14f;//pai是const修饰的常变量
//pai = 5.14;//不能直接修改的
//#define的标识符常量
#define MAX 100//一般宏定义的常量都要大写
//枚举常量默认从0开始,依次向下加1
printf("%d\n", MALE);//输出为0
printf("%d\n", FEMALE);//输出为1
printf("%d\n", SECRET);//输出为2
return 0;
}
总结
初识C语言系列是根据自己学习B站C语言视频内容写的,也是为了照着视频文件练习打字速度和编程手感。内容排版完全按照板书来的。
自己写博客也是方便自己巩固与学习,记录自己的学习进度,后续复习如果有新的体会,还会更改内容的。我是机械工程专业的,51单片机、STM32系列单片机都是用C语言编程的,学好C语言,软硬件相结合,为以后就业打下牢固的基础,同时也能潜在的拓宽就业面。
我看视频已经学到分支和循环那里了,但是自己打字很慢,也会影响更新速度的。如果内容有错误的地方,也请大家友好评论并予以指正,毕竟是初学C语言,非常感谢。