标识符
C语言中有三种标识符:关键字,预定义标识符,用户标识符
标识符的命名规则:由字母,数字,下划线,构成,并且只能由下划线和字母开头
如:abc,cab,_ac,ab1,ab_1
但是:1ab,&ab,$bh,等都是错误的
- 关键字:前面提到了,c中有37种关键字,如int,double,char,if else ,sizeof等,同样的他们也是标识符,但是注意,关键字不可作为用户标识符,即不可作为变量名或函数名
- 预定义标识符:指系统一开始就定义好的,比如标准库里的输入输出函数printf(),scanf(),数学函数,pow(),fabs()等等,注意:这些标识符可作为用户标识符,但是若作为变量名将失去原有的意义,或会起冲突,切记主函数也可作为用户标识符
- 用户标识符:变量名,函数名,结构体类型名等等;
- 注意:不管哪种标识符都要遵循命名规则!
常量
常量的类型 | 实例 | 备注 |
整型常量 | 123,-45,0,-017,-0xffff 12L,12u,12lu | 有正有负,可取0,但是编译器无法接收0011(二进制常量) 因为在编译器中二进制无法表示整数,123,345,这样也是错的,不能有逗号在中间 |
实型常量 | 3.14,-0.56,1.,.01,1.25L,1.25f | |
字符型常量 | 'a','\n','0' | 注意 ‘’ 是不合法的 |
字符串常量 | “123”,“0”, | 注意 “” 是合法的 |
对整型常量再做区分
进制 | 正数 | 负数 | |
十进制 | 11 | -11 | |
二进制 | 1011 | -1011 | |
八进制 | 013 | -013 | |
十六进制 | 0xa | -0xa |
类型 | ||
有符号整型 | 30,-30 | signed int声明的变量可接收,可省略signed |
无符号整型 | 30u | unsigned int 声明的变量可接收 ,无负数-30u错误 |
有符号长整型 | 30l或30L,-30L | long int 可接收 |
无符号长整型 | 30lu(或Lu,lU) | unsigned long int 可接收 |
注意:若无unsigned 声明,变量都是默认有符号signed,即使char 也一样
实型常量的表达形式
形式 | 实例 | 注意事项 |
十进制小数形式 | 0.123 ,12. , .09 | 注意,必须有小数点 |
指数形式 | 3.14e10 , .98e-6 , -12.e3,1e-6 | 这里e表示以十为底的指数;注意:e前e后都有数,e后必须为整数,E也可以大写 |
单精度 实型常量 | 1.23F,1.25e-2f | 单精度实型常量必须接f或F |
双精度 实型常量 | 1.23,-12.35,.78 | 实型常量隐含按双精度处理 |
长双精度 实型常量 | 1.25L,1.25l | 长双精度必须在小数点后接l或L |
变量
定义:在c中变量是可以改变的量,而常量不是可以改变的量,变量里一般存储的是常量,常量是变量的值,而声明变量也是我们经常要做的事
怎么声明一个变量呢?一般为如下形式
关键字 变量名(用户表示符)
既然要用到关键字声明,而c中有37个关键字,我就不一一说明了;
那声明一个变量为什么要用到关键字呢,因为关键字会告诉系统存储该数据要开辟多大的存储空间,告诉系统,这个空间将存储什么数据类型的常量
进而我们就不得不说到有哪些数据类型了,而这些数据类型使用什么关键字来表示呢
数据类型总共分为两种:基本类型,构造类型,指针类型,void类型
首先我来说下基本类型:
基本类型总共有四类:整型,实型,字符型,枚举型
整型又分为:基本整型(int),长整型(long int),短整型(short int),无符号整型(unsigned)//后面跟的都是关键字
实型又分为:单精度实型(float),双精度实型(double),长双精度实型(long double)
字符型:char
枚举型:enum(通常枚举型的大小跟int 一样,后面将再详细介绍)
竟然说了这么多数据类型的关键字,那到底怎么用呢?
如上图所示,这样我就声明了不同类型的变量了;
那声明了变量会怎么样呢?
其实当你声明了该变量后,系统就会根据数据类型开辟对应大小的的存储空间,而这些存储空间就用来存储你想存储的值;
那系统到底给这些变量开辟了多大的存储空间呢?
为了对这些存储空间大小进行输出,于是我们必须引入输出函数printf()
- 而用这个函数时我们需要知道几点:
- c语言中并没有专门的输入输出语句
- 输入输出语句实通过调用c标准库里的函数实现的
- 而在调用这些函数之前,我们必须对函数进行声明,而这些声明都包含在了头文件<stdio.h>,中,所以使用,输入输出语句时,必须有头文件<stdio.h>
好了我们这就来进行输出吧
等一下,另外我们还要引出一个关键字 sizeof() 记住这是关键字,不是函数名,这是一种运算,计算所占空间大小的运算符
记住int 虽然占4字节,但计算中我们一律按2字节
说完了基本数据类型,还有一个构造类型
而构造类型其实就是由基本类型构造而成
构造类型有:数组(int a[10]),结构体,枚举体,后面我们都会详细介绍,以及指针类型,void都会慢慢介绍