1.什么是C语言
C语言是一门计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译,处理低级存储器,产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能。但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可以在许多电脑上进行编译,甚至包括一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各个开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语言,称为ANSIC,作为C语言最初的标准。目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
C89--->C90--->C99--->C11-->C19 ,C89和C99使用最多
C语言是一名面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同
其编译器主要有Clang,GCC,(VS 2022使用的)MSVC,Turbo C等
语言是沟通的一种方式,汉语、英语等是人和人交流的语言,而C语言、Java、C++等上千种计算机语言,是人和计算机交流的语言。
计算机语言的发展:
二进制--->汇编语言(助记符)--->B语言--->C语言--->...
C语言还广泛应用于底层开发,底层开发包括什么如下图所示
2.第一个C语言程序
1.创建项目
2.创建.c文件
3.编写代码
#include <stdio.h> int main() { printf("hello world\n");//printf打印函数,在屏幕上打印 hello world 并换行 // '\n'是换行符 return 0; }
写好的C语言代码只是文本信息,这些代码不能直接运行起来,需要经过编译和链接才能变为可执行程序 .exe。而Visual Studio 2022是集成开发环境,包含了编译,链接,运行,调试等功能。Ctrl+F5开始执行程序。
main函数是程序的入口,一个工程中main函数有且仅有一个。
每个函数都有返回值类型,这里是int 整形,所以ruturn 0;
0是一个整数,数据类型是整形,后面会讲到
3.数据类型
char //字符型数据类型 short //短整型 int //整形 long //长整型 long long //更长的整形 float //单精度浮点数 double //双精度浮点数
C99中还包括
bool //布尔数据类型 返回值只有真或假 long double
不同的数据类型是为了更好的存储不同的数据
计算机中的单位:
sizeof是一个关键字,用来计算后面数据所占字节的大小。下图为每个数据类型所占字节的大小,%d表示以十进制的方式打印。
C语言标准只是规定sizeof(long) >= sizeof(int),所以sizeof(long)在不同的编译器中大小可能不同,可能是4个字节也可能是8个字节。
char字符型数据在创建时需要加上‘ ’。
char ch = 'a'; int age = 18; double weight = 62.5;
4.scanf函数报错
scanf函数是输入函数,要包含#include <stdio.h>输入输出流头文件。
scanf("输入变量的类型",&要输入的变量); //%d 整形 //&取地址符,这里先记住这样用就行 //例: int a = 0;//创建一个整形变量a,并赋初值为0 scanf("%d",&a);//输入a的值
如果大家使用的是微软提供的编译器,如visual studio 2022,在使用时scanf输入函数时会报错。
那个因为微软的编译器认为scanf函数不安全,建议使用scanf_s。但是scanf_s函数是由VS编译器提供的,只有VS编译器认识,其他编译器是不认识的,如果你的代码中使用了scanf_s函数,就不跨平台了。
所以有两种解决办法,第一种就是上面提到的使用scanf_s函数,第二种就是在代码第一行添加#define _CRT_SECURE_NO_WARNINGS 1,让编译器忽视这种不安全。对于初学者,还是推荐第二种方法,然后使用scanf函数。
为了不用每次创建新项目时都添加#define _CRT_SECURE_NO_WARNINGS 1,还有一个一劳永逸的方法:
在VS安装目录下,存在这样一个文件 newc++file.cpp 文件,可以用Everything这个软件来查找。我们通常情况下是不能直接修改这个文件的,我们可以先将这个文件复制到桌面,然后在这个文件第一行加上#define _CRT_SECURE_NO_WARNINGS 1,再复制替换掉原来路径的下的文件。这样每当创建一个新项目时第一行都会自己有这句话。
原理是你每次创建项目都会复制一份这个文件,然后在这个文件上编写代码,相当于一个文本文件,在这个文本上写代码,只不过它最开始是空的,你在第一行加了一句话,然后之后每次都会复制这句话。