目录
座右铭:先做应该做的事,再做喜欢做的事
注:所写代码都是在VS2022或者VS2019上书写
一.C语言简介
(一)C语言的定义(什么是C语言?)
1.C语言是一门面向过程的计算机编程语言,广泛应用于底层开发;
2.人和计算机交流的语言(通过写C语言代码与计算机语言进行沟通);
(二)计算机语言的发展史
机器语言-汇编语言-高级语言
1.机器语言
由0和1字符组成的二进制序列
2.汇编语言
用助记符代替二进制指令的语言
3.高级语言
面向对象的语言:C...
面向过程的语言:C++、Java、Python...
注:计算机只能识别由字符0和1组成的二进制序列,无论写哪种语言,最终都会编译成二进制序列;
(三)代码编译器(写代码的平台)
1、Clang:ios
2、GCC:Linux操作系统上的
3、MSVC(VS系列的底层编译器):VS2019,一个集成开发环境(IDE),把编辑器、编译器、链接器、调试器都集成在这个环境里了,windows系统上的
二.第一个C语言程序(最简单的C语言程序)
#include<stdio.h>
int main() {
printf("hello world\n");
return 0;
}
(一)主函数main
1.主函数是程序执行的入口;
2.C语言代码中必须有且只有一个主函数,一个工程(项目)中可以有多个.c文件,但是多个.c文件中只能有一个main函数;
3.主函数基本格式
int main() {
return 0;
}
(二)库函数
1.库函数的定义
C语言标准库提供的函数,可以直接使用,不需要再定义;使用库函数,需要头部声明包含头文件,不同的库函数在不同的头文件中;
声明格式:#include<头文件名>
#include<头文件名>
2.头文件 stdio.h -包含标准输入输出函数
(1)printf函数:打印函数,专门在屏幕上打印数据的
使用格式:
#include<stdio.h>
int main() {
int a = 1;
printf("我爱你\n"); //不带输出参数、格式
printf("%d\n", 5); //带输出参数、格式
printf("%d\n", a); //带输出参数、格式
return 0;
}
(2)scanf函数:输入函数,专门在屏幕上输入数据的
注:VS编译器不能识别scanf函数,需要在头部声明:或者使用scanf_s(VS提供)
#define _CRT_SECURE_NO_WARNINGS 1(数字可加可不加)
使用格式
情况1:单个输入
scanf(“%d”,&a); 输入数据类型格式 取要输入的变量的地址
情况2:多个输入
scanf(“%d %d”,&a,&b);
使用scanf_s
#include<stdio.h>
int main() {
int a,b,c,d,f;
scanf_s("%d", &a);
printf("a=%d\n", a);
scanf_s("%d,%d",&b,&c);
printf("b=%d c=%d\n", b, c);
scanf_s("%d %d",&d,&f);
printf("d=%d f=%d\n", d, f);
return 0;
}
使用scanf
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
int a;
scanf("%d", &a);
printf("a=%d", a);
return 0;
}
输出时,按输入格式输入;中间是空格就空一格,是逗号就空一个逗号,也可以是其他符号(+ - ...);
3.函数打印格式输出数据类型
%d:打印整数类型
%c:打印字符类型(单个)
%f:打印float类型
%lf:打印double类型
%s:字符串输出(数组),一直打印到\0才停止
三.数据类型
(一)C语言内置的数据类型
1.整型
(1)short //短整型
(2)int //整型
(3)long //长整型
(4)long long //更长的整型,C99里的标准;
2.浮点型
(1)float //单精度浮点型
(2)double //双精度浮点型
3.字符型
char //字符数据类型
字符串是用字符数组来存储;
注:数据类型的作用就是来定义变量、函数返回值的。
(二)数据类型的大小
1.数据类型的计算
sizeof():操作符,用来计算对象或者类型的大小,会返回一个内存所占字节数(整型);
使用方法:sizeof(变量名或者类型名)
例:a=sizeof(int)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
printf("%d\n", sizeof(short));
printf("%d\n", sizeof(int));
printf("%d\n", sizeof(long));
printf("%d\n", sizeof(float));
printf("%d\n", sizeof(double));
printf("%d\n", sizeof(char));
return 0;
}
2.大小
整型:short-int-long-long long 2-4-4-4
浮点型:float-double 4-8
字符型:char 1
四.变量和常量
(一)变量和常量的概念
变量:不会变化的值(性别)
常量:变化的值(年龄)
(二)变量的定义及初始化
格式:数据类型 变量名=数据;
int a=0;
float b=1.2f; //单精度浮点类型,赋值时后面加f,不然编译器默认为double类型;
double c=2.3;
char d=‘a’; //字符赋值或初始化时,字符需用单引号括起来;
注:定义变量时,尽量初始化,是一个良好的编程条件;
#include<stdio.h>
int main() {
int a = 0;
float b = 2.0f; //单精度浮点类型,赋值时后面加f,不然编译器默认为double类型;
double c = 0.3;
char d = 'a'; //字符赋值或初始化时,字符需用单引号括起来;表示字符时,用单引号括起来;
printf("a=%d\n", a);
printf("b=%f\n", b);
printf("c=%lf\n", c);
printf("d=%c\n", d);
return 0;
}
变量定义:用于为变量分配存储空间,还可为变量指定初始值。程序中,变量有且仅有一个定义。
变量声明:用于向程序表明变量的类型和名字。
变量初始化:就是给变量赋值。
定义也是声明,extern声明不是定义,变量在使用前就要被定义或者声明。
在一个程序中,变量只能定义一次,却可以声明多次。
定义分配存储空间,而声明不会。定义完之后才能初始化,所以初始化的时候已经分配内存
(三)变量的命名规则
1.由