什么是C语言?
C语言是一门通用 计算机编程语言,广泛应用于 底层开发。C语言的设计目标是提供一种能以简易
的方式 编译、处理低级 存储器、产生少量的 机器码以及不需要任何运行环境支持便能运行的编程语
言。
语言是沟通的工具。人与人之间交流有汉语,英语,俄语.....,人与计算机交流呢?C/C++/java....,简而言之C语言就是人和计算机交流的语言。计算机能够识别的是二进制指令。C程序经过我们的编译器变成二进制指令,进而实现一系列计算机操作。
数据类型
char | 字符型数据类型 %s |
short | 短整型 %d |
int | 整型 %d |
long | 长整型 %d |
long long | 长长整型 |
float | 单精度浮点数 %f |
double | 双精度浮点数 %lf |
为什么出现这么多的类型? 用来创建变量,变量有不同类型。
存在这么多的类型,其实是为了更加丰富的表达生活中的各种值。
每种类型的大小是多少?
#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));
printf("%d\n", sizeof(long double));
return 0;
}
上面代码运行结果如图,为了方便我已经在后面对其进行了注释。
在次引入一些额外知识点:上面显示的1,2,4...单位是字节(byte)
最小的单位是比特,相应的换算关系如下:
byte: 1byte=8 bit
KB: 1KB=1024byte
MB: 1MB=1024KB
GB: 1GB=1024MB
TB: 1TB=1024GB
除了bit换算关系是8外,其余是1024. =1024,1024是否很熟悉,10月24日是程序员节 日,就是这个缘由。
下面是关于数据类型的一些注意事项:
float a;
printf("%.2f",a)//这个意思就是结果保留2位有效数字
salary=1000.0f//可能会看到这样子书写,这个意思就是告诉编译器是float型。如果你写100.00编译器默认duble
编译器默认认为double类型保留小数点后6位。
很多初学者容易把main写成mian
几个写法问题:
void main()
{
return 0;
}//写法太过古老,不推荐
int main(void)
{
return 0;
}//这里说明main函数不需要参数。
int main()
{
return 0;
}//这个是主流写法
main函数是程序的入口,一个工程中main函数有且仅有一个
- 常量,变量
故名思意:
常量:不变的值,C中用常量概念来表示
变量:变化的值C语言用变量来表示
那如何定义变量呢? 形如:类型 名=XXX
变量的命名:
只能由字母(包括大写和小写)、数字和下划线( _ )组成。
不能以数字开头。
长度不能超过63个字符。
变量名中区分大小写的。
变量名不能使用关键字。
变量分为:局部变量和全局变量
关于这两者需要注意哪些呢?
当局部变量和全局变量同名的时候,局部变量优先使用。
作用域:
作用域(scope)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的而限定这个名字的可用性的代码范围就是这个名字的作用域。
1. 局部变量的作用域是变量所在的局部范围。
2. 全局变量的作用域是整个工程。
生命周期
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
2. 全局变量的生命周期是:整个程序的生命周期。
下面我们先来谈一谈优先使用的证明。
全局变量的周期证明:
事先在前面声明一下就可以 extern
作用域证明
- 常量
C中的常量分为:
const修饰的常变量
#define 定义的标识符常量
枚举常量
先解释const修饰的常变量
const修饰的变量具有了常量的属性,那为什么叫常变量呢?
如果是常量,那么它作为数组的下标是可以的,但编译器显示不可以,所以为常变量
#define 定义的标识符常量
枚举常量:
#include"stdio.h"
enum Sex
{
MALE,
FEMALE,
SECRET
};
//括号中的MALE,FEMALE,SECRET是枚举常量
int main()
{
//枚举常量演示
printf("%d\n", MALE);
printf("%d\n", FEMALE);
printf("%d\n", SECRET);
return 0;
}