前言
本文将基本了解C语言的基础知识,对其有个大概的认识。待通观全局后,我们要做的事情便是对这些知识点逐个击破,细嚼慢咽。现在我们仅简单地认识下这些基础知识,主要内容有:
- 什么是C语言?
- 第一个C语言程序
- 数据结构
- 变量、常量
1. 什么是C语言?
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
C语言是一门通用的计算机编程语言。语言是人类进行沟通交流的表达方式,即人类交际工具;而计算机编程语言则是程序设计的最重要的工具。我们或多或少了解到的C、C++、JAVA、Python、go等等都是计算机编程语言。
C语言广泛应用于底层开发。计算机有(下层/底层)硬件、驱动、操作系统(Windows/MacOS/Linux)和(上层)应用软件。C语言是人机交互接近底层的桥梁。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。
目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
计算机编程语言的发展阶段可大致分为机器语言 --> 汇编语言 --> 高级计算机语言这几个阶段。二进制 --> 汇编语言(低级语言) --> B语言 --> C语言 --> C++/JAVA······(高级语言)
美国国家标准局制定了C语言最初的语法标准–ANSIC。随着C语言的发展,又出现了C89,C90,C99,C11等等一系列的标准。我们目前能见到的最常用的标准还是C89,C90和部分C99(C99里很多的语法特性都没有流行起来)。
C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。
其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
C生万物,编程之本。从长远IT职业发展的角度考虑,C语言无疑是作为入门的首选。近五十年间,在TIBOE排行榜中,C/C++长期霸占前三名的位置,无疑是经典的主流,永不过时。学好编程,不止C语言。
2. 第一个C语言程序
如何写一个程序?
- 创建项目
- 创建源文件
- 写代码
- 编译代码+运行
//第一个C语言程序,打印"hello world"
#include <stdio.h>
int main()
{
printf("hello world\n");
return 0;
}
-
main函数叫主函数,是C语言程序的入口。
-
一个工程(项目)中可以有多个.c文件,但是多个.c文件有且仅有一个main函数。
-
int是函数的返回值类型–整型。
return 0;
表示函数的返回值是整数0。 -
printf函数是C标准函数库提供的一个库函数,是专门用来在屏幕上打印数据的。
-
要使用库函数必须先包含对应的头文件。
#include <stdio.h>
就是包含<stdio.h>这个头文件的意思。“include“是包含的意思,“stdio"可拓展为"standard input output”(标准输入输出)。
3. 数据类型
char //字符数据类型
short //短整型
int //整型
long //长整型
long long //更长的整型
float //单精度浮点数类型
double //双精度浮点数类型
这里我们来计算下各数据类型的变量大小:
#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;
}
- %d是格式控制符的一种,用来打印10进制的整数。
- \n是转义字符的一种,表示换行。
- sizeof是操作符的一种,用来计算变量的大小(单位是字节)。
计算机常见的一些单位:
- bit – 比特位
- byte – 字节 --> 1byte = 8bit
- KB --> 1KB = 1024byte
- MB --> 1MB = 1024KB
- GB --> 1GB = 1024MB
- TB --> 1TB = 1024GB
- PB --> 1PB = 1024TB
C语言标准规定:sizeof(long) >= sizeof(int)。从上面的运行结果来看,int类型和long类型的变量大小均为4字节。
short的取值范围是-3276832767,int的取值范围是-2^312^31-1。float的精确度是7,double的精确度是16。存在这么多的数据类型,其实是为了更加丰富地表达生活中的各种值。
我们使用数据类型是为了创建合适的变量,不同的数据类型精确度和所占空间的大小不同,应根据需求选择。例如:
char ch = 'w';
float weight = 75.5f;//后面不加f,(有的编译器)默认是double类型
double pai = 3.14;//加上f,(有的编译器)默认是float类型
4. 变量、常量
生活中的有些值是不变的(比如:圆周率,性别,身份证号码,血型等等),有些值是可变的(比如:年龄,体重,薪资)。C语言中,不变的值用常量的概念来表示,可变的值用变量的概念来表示。
1). 定义变量的方法
数据类型 变量名 =(赋值) 初始值;
int age = 18;
double salary = 20000.0;
像int m;
这种写法不是好的编程习惯(VS会直接报错:使用未初始化的变量),建议在创建变量的同时给一个初始值int n = 0;
(初始化变量)
2). 变量的命名
- 只能由字母(包括大写和小写)、数字和下划线( _ )组成。
- 不能以数字开头。
- 长度不能超过63个字符。
- 变量名中区分大小写的。
- 变量名不能使用关键字。
3). 变量的分类
- 局部变量
- 全局变量
int a = 10;//全局变量
//定义在{}外部(函数体外部)
int main()
{
int b = 20;//局部变量
//定义在{}内部(函数体内部)
return 0;
}
int c = 100;//同样是全局变量
举个例子:
#include <stdio.h>
int a = 10;//全局变量
int main()
{
int a = 1;//局部变量
printf("%d\n", a);
return 0;
}
打印出来的值是10还是1?
局部变量和全局变量名字冲突(同名)时,局部优先(局部变量优先使用)。(建议尽量不要冲突,一个人想写Bug是拦不住的~)
4). 变量的使用
变量应在声明、赋值和取值时随用随设(避免使用过多的全局变量)。如果需要变量来存储数据,那就创建变量去使用。
举个例子:写一个代码计算两个整数的和。
#include <stdio.h>
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
//输入数据
scanf("%d%d", &num1, &num2);
//计算求和
sum = num1 + num2;
//输出结果
printf("sum = %d\n", sum);
return 0;
}
总结
- C语言是一门通用的计算机编程语言,广泛应用于底层开发。有着自己的国际标准ANSI C,C89,C90等等。
- main函数(主函数)是C语言中程序的入口,一个工程(项目)中有且仅有一个main函数(主函数)。
- 数据类型的分类及其变量所占空间大小。
- 变量的概念、定义、命名、分类和使用。
以上拙见,欢迎大家指正和交流。