什么是C语言
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
像英语,汉语一样,属于交流的语言,不过是人和计算机交流的语言。
C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。
语言的发展
机器语言
第一代计算机语言称为机器语言。机器语言就是 0/1 代码。计算机只能识别 0 和 1。在计算机内部,无论是一部电影还是一首歌曲或是一张图片,最终保存的都是 0/1 代码,因为 CPU 只能执行 0/1 代码。
汇编语言
首先这么像机器语言编写肯定是可以的,但是这样太麻烦,而且很不好理解,所以后来就出现了汇编语言。
汇编语言就是将一串很枯燥无味的机器语言转化成一个英文单词。比如说:add 1, 2;
add 就是一个英文单词,这样看起来就稍微有一些含义了,即 1 和 2 相加。这个就是汇编语言。
C语言历史
C语言是由B语言发展而来,而后大多公司都使用C语言,不同的公司对C语言有自己的发展,和改进,而后出现不同的标准。
为了统一标准 美国国家标准协会(ANSI)先后C89 C99 C12等标准。目前比较权威的为c99。
而后在C语言的基础演变了C++,java 等面向对象的语言。
C语言的优势
广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言偏向于底层开发,如操作系统。
1、广泛用于底层开发
2,可移植性强,跨平台性
3,其编译器(将C语言转换成计算机语言)主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
如VS(IDE集成开发环境)用的就是MSVC编译器。
第一个C语言程序
看了C语言的历史你肯定迫不及待想自己写一个C语言程序吧。
C语言环境的配置
APP推荐建议
VS2019下载地址
下载vs2013及以上版本环境
安装教程推荐
B站比特鹏哥教程如下
VS2019安装教程
第一个C程序
相信看了安装教程,你已经安装好了VS2019并且成功的创建第一个C语言项目吧。
那我们来写第一个C语言程序吧!
在屏幕中输出Hello world!
是不是很神奇,短短6行代码便实现了我们想要实现的功能。
其实编程语言的出现,代码就是描述我们生活中的实际问题的!
注意事项
1, 一个项目中有且仅有一个主(main)函数
2,{ 是程序的入口 表示程序开始,} 便是程序的出口表示程序结束
3,因为printf是在stdio.h库中的,就好比生活中你使用别人的东西 ,使用了printf函数前需要向stdio.h打招呼所以 main 函数上面要包含库函数<stdio.h>
4 ,main前有一个int 说明该函数的返回值是整型(这些我们待会会学到,先记住)与最后一行代码return 0相呼应;
记住上面便能实现自己第一个C语言程序了快去试试吧!
数据类型 //整型 //即数学中的整数 short int long long long //浮点型 //数学中的小数(小数点可浮动) float double
整型 可以表示生活中的 年龄 ,人数等整数数据
而浮点型 可以表示 生活中的体重,身高等带有小数的数据
想必你会疑问 :为什么会出现怎么多数据类型呢?
首先我们先来测试一下它们这些类型的内存大小
我们先来认识一个C语言运算符吧
sizeof()用来计算类型或者类型所创建变量所占内存空间大小(Byte)
计算机内存大小的单位
一个二进制位的0或1一位定义为1bit
注:C语言规定sizeof(long)>=sizeof(int) 即可
所以long类型在不同平台的大小不同,4/8
整型
根据生活中数据范围不同选择不一样的数据类型,合理的利用内存空间
比如 一个人的年龄 最多不超过500 所以用short短整型即可
浮点型
表示精度的不同,即小数点后面 位数长度不同
根据你的数据精度不同,合理选择浮点类型
常量和变量
顾名思义 常量就是不变的量,变量可以改变的量
常量
不可改变的量
如人的性别,身份证号码等等…
字面常量
66; 3.14 999 //*这些都是字面常量*
const修饰的常变量
const 修饰变量使改变量具有常属性(不可修改)
const int height=175;//创建了一个int类型的变量 const修饰后 // height不可改变 height=200; //err
但是该量还是变量只不过有了常量的不可修改属性
代码中的两个错误
错误1,const 修饰的常量不可修改
错误2,const 本质还是变量不可定义数组长度
#define定义的常量
使用方法
#define MAX 100
#define +空格+常量名+空格+字面常量
注:常量名习惯大写
枚举常量
生活中有一些值可以一一列举
比如 :性别,三元色等等;
enum sexa //枚举类型 { male, //枚举常量 female };
enum sexa 就是枚举类型和int一样属于一种数据类型
该类型只有两种枚举常量可以选择 male和female
使用时赋值其他未定义的枚举常量会报错
每个枚举常量有自己的值 规定第一个值为0然后从上到下依次加一;
设置枚举常量可以赋初始值
变量
可以改变的量
定义变量的方法
类型 +变量名+常量;
int age=10; age=13;//可以修改 float pai=3.14; char ch='w';
变量的分类
局部变量
定义在{}内的变量为局部变量
全局变量
定义在main函数外且不在{}内的变量
eg:
int glab=4;//全局变量 int add(int x, int y) { int sum=0; // 局部变量 } int main() { int a=6; // 局部变量 }
是否想过当局部变量和全局变量同名时会怎样?
看到上面的结果想必你有了答案!
总结
上面的局部变量a变量的定义其实没有什么问题的!
当局部变量和全局变变量同时存在时采用局部优先原则
变量的作用域及生命周期
作用域(scope),程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的而限定这个名字的可用性的代码范围就是这个名字的作用域。
简单的说作用域就是该变量存在的范围 出了该范围该变量就失效
局部变量的作用域在它的局部范围即在{ }
全局变量的作用域在整个工程
int main() { int b=1; { int a=12; // a的作用域 } // b的作用域 }
可以看到全局变量的作用域是整个工程!
生命周期
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
全局变量的生命周期是:整个程序的生命周期。