一、前期准备
1.gitee网址(代码托管网站):工作台 - Gitee.com
Git教程 - 廖雪峰的官方网站 (liaoxuefeng.com)
用法:
1)新建仓库
2)随意勾选
3)网络仓库构建完成
2.所学知识:计算机语言、算法和数据结构、操作系统、计算机网络、项目实战
二、了解C语言的基础知识
1.什么是C语言?
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语 言。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制 定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。
2.安装VS2019
------------------------------------------集成开发环境(英文缩写:IDE)-----------------------------------
编辑器
编译器
链接器
调试器
Visual Studio 2022 IDE - 适用于软件开发人员的编程工具 (microsoft.com)
3.前情
1.创建项目
创建后出现此界面即可
如果没有出现,视图-解决方案资源管理就可以出现
2.创建源文件
.h header头文件
.c 源文件
我们一般把代码放在.c文件中
1)添加源文件
3.写代码
//解释:
//main函数是程序的入口
//一个工程中main函数有且仅有一个
//一个工程(项目)中可以有多个.c文件,但是多个.c文件中只能有一个main函数
//include 是包含的意识
//下面的代码就是包含stdio.h这个头文件
//stdio - standard input output 标准输入输出头文件//int - 整型 - 整数
//printf - 打印函数
//专门用来在屏幕上打印数据的
//是C语言标准库中提供的一个库函数
#include <stdio.h>
int main()
{printf("hello bit\n");printf("he he\n");return 0;
}
常见错误:
#include<stdio.h>
int main(){
printf("my favourite TV is modren family\n");
printf("you are my baby\n");
return 0;
}
不同的.c可以调用到主函数
一个项目只能有一个主函数
4.数据类型
//%d - 打印10进制的整数
//%c - 打印字符
//sizeof 是一个操作符,是计算变量的大小的按一下键盘上的:ctrl+F5(运行)
//字节的换算:
1 B/byte(字节) = 8 bit(比特)(位) 。
1 KB(千字节) = 1024 B/byte(字节) 。
1 MB = 1024 KB 。
1 GB = 1024 MB 。
1TB =1024 GB 。
1 PB = 1024 TB 。
1 EB = 1024 PB。
char //字符数据类型
short //短整型
int //整形
long //长整型
long long //更长的整形
float //单精度浮点数//浮点数--小数点可以浮动,所以可称浮点数
double //双精度浮点数
sizeof() 是一种内存容量度量函数,功能是返回一个变量或者类型的大小(以字节为单位);在 C 语言中,sizeof() 是一个判断数据类型或者表达式长度的运算符。
返回值:内存所占字节数
计算机常见的单位
bit
byte
KB
MB
GB
TB
PB
#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));return 0;
}
注意:存在这么多的类型,其实是为了更加丰富的表达生活中的各种值。
类型的使用:
char ch = 'w';
int weight = 120;
int salary = 20000;
5.变量
生活中的有些值是不变的(比如:圆周率,性别,身份证号码,血型等等)
有些值是可变的(比如:年龄,体重,薪资)。
不变的值,C语言中用常量的概念来表示,变得值C语言中用变量来表示。
1)定义变量的方法
int age = 150;
float weight = 45.5f;
char ch = 'w';
2)变量的名字
只能由字母(包括大写和小写)、数字和下划线( _ )组成。
不能以数字开头。
长度不能超过63个字符。
变量名中区分大小写的。
变量名不能使用关键字。
3)变量的分类
变量分为:全局变量和局部变量
#include <stdio.h>
int global = 2019;//全局变量
int main()
{int local = 2018;//局部变量//下面定义的global会不会有问题?int global = 2020;//局部变量printf("global = %d\n", global);return 0;
}
上面的局部变量global变量的定义其实没有什么问题的!
当局部变量和全局变量同名的时候,局部变量优先使用。
4)变量的使用
//这里介绍一下输入:scanf
//输出语句:printf
//在创建变量的同时给一个初始值
scanf容易出现错误, 需要在底下的提示复制其中的部分
#include <stdio.h>
int main()
{int num1 = 0;int num2 = 0;int sum = 0;printf("输入两个操作数:>");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("sum = %d\n", sum);return 0;
}
5)变量的作用域和生命周期
变量必须赋初值
全局变量:可以先声明,后使用
局部变量:必须有初值
作用域
作用域(scope)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用
的而限定这个名字的可用性的代码范围就是这个名字的作用域。
1. 局部变量的作用域是变量所在的局部范围。(int main()内部)
2. 全局变量的作用域是整个工程。(int main()外部)
生命周期
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
2. 全局变量的生命周期是:整个程序的生命周期。
//全局变量可以在主函数内部调用
//printf()函数只能在函数内部执行
//注意:编译器自上而下
//如果在下面定义了全局变量,而前面用了,需要声明int g_a;最好是在前面写
//同一项目可以跨文件进行使用;
//extern声明外部符号:extern int g_a
6)常量
C语言中的常量和变量的定义的形式有所差异。
C语言中的常量分为以下以下几种:
1.字面常量:1 3 3.3 5 10(直接写出来,就可以看出来)
2.const 修饰的常变量,(不能修改了,但仍被认为是变量)(虽然不能变,但本质上仍然是变量)(不能放进数组arr[M])
3.#define 定义的标识符常量(可以放进数组arr[M])
4.枚举常量:0 1 2 3 4 5
//枚举就是一一列举
//血型,性别,三原色(-Red Green Blue)都可以一一列举
EG:
#include <stdio.h>
//举例
enum Sex
{MALE,//0FEMALE,//1SECRET//2
};
//括号中的MALE,FEMALE,SECRET是枚举常量
//枚举分别对应:0,1,2
int main()
{const float pai = 3.14f; //这里的pai是const修饰的常变量const float pais=5.14;//是不能直接修改的!printf("pais=%d pais=%d\n", pai, pais);//#define的标识符常量 演示
#define MAX 100printf("max=%d\n", MAX);//枚举常量演示printf("%d\n", MALE);printf("%d\n", FEMALE);printf("%d\n", SECRET);return 0;
}
4. 字符串+转义字符+注释
//C语言提供了一个库函数,可以计算字符串的长度
//strlen()
//数长度时,\0不算字符长度
//无\0的长度不能得出,因为其后的数是随机的
//字符必须用转义字符引起来
1)字符串
这种由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal),或者简称字符串。
注:字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串内容。
//%s 打印字符串
#include <stdio.h>
//下面代码,打印结果是什么?为什么?(突出'\0'的重要性)
int main()
{char arr1[] = "bit";char arr2[] = { 'b', 'i', 't'};char arr3[] = { 'b', 'i', 't','\0' };//数组printf("%s\n", arr1);printf("%s\n", arr2);printf("%s\n", arr3);return 0;
}
2)转义字符
\\转义:转变原来的意思
#include <stdio.h>
int main()
{printf("c:\code\test.c\n");return 0;
}
转义字符 | 意义 | ASCII码值(十进制) |
---|---|---|
\a | 警告字符,响铃(BEL) | 007 |
\b | 退格(BS) ,将当前位置移到前一列 | 008 |
\f | 换页(FF),将当前位置移到下页开头 | 012 |
\n | 换行(LF) ,将当前位置移到下一行开头 | 010 |
\r | 回车(CR) ,将当前位置移到本行开头 | 013 |
\t | 水平制表(HT) | 009 |
\v | 垂直制表(VT) | 011 |
\' | 单引号 | 039 |
\" | 双引号 | 034 |
\\ | 反斜杠 | 092 |
#include <stdio.h>
int main()
{//问题1:在屏幕上打印一个单引号',怎么做?//问题2:在屏幕上打印一个字符串,字符串的内容是一个双引号“,怎么做?printf("%c\n", '\'');printf("%s\n", "\"");return 0;
}
//程序输出什么?
#include <stdio.h>
int main()
{printf("%d\n", strlen("abcdef"));// \62被解析成一个转义字符printf("%d\n", strlen("c:\test\628\test.c"));return 0;
}
5.注释
#include <stdio.h>
int Add(int x, int y)
{return x+y;
}
/*C语言风格注释
int Sub(int x, int y)
{return x-y;
}
*/
int main()
{//C++注释风格//int a = 10;//调用Add函数,完成加法printf("%d\n", Add(1, 2));return 0;
}
注释有两种风格:
C语言风格的注释 /*xxxxxx*/
缺陷:不能嵌套注释(一般别用)
C++风格的注释 //xxxxxxxx
可以注释一行也可以注释多行