C语言标识符的命名规则
变量或者函数起的名字就是标识符,而且C语言的标识符有它自己的命名规则;
- 标识符的长度最好不要超过8位,因为在一些版本的C语言中标示符的前八位是有效的,所以当两个标识符的前八位相同时会被识别为同一个标识符;
- 标识符要严格区分大小写,当两个同名标识符的大小写不同时,这两个标识符便为两个不同的标识符;
- 标示符最好选择有意义的单词组成,尽量见面名知意,不要使用中文;
- 避免使用C语言关键字作为标识符。
变量与赋值
变量:变量就是可以变化的量,而每个变量都会有一个名字(标识符)。变量占据内存中一定的存储单元。 变量名和变量值是两个不同的概念。
- 变量定义的一般形式为:数据类型 变量名;
- 多个类型相同的变量:数据类型 变量名, 变量名, 变量名...;
- 变量名和标识符的命名规范完全相同。
赋值
- 先声明再赋值
- 声明的同时赋值
- 不允许连续赋值,如int a=b=c=5;是不合法的。
#include <stdio.h>
int main()
{
int age = 18; /*声明的同时赋值*/
// int age; age = 18;/*声明后再赋值*/
printf("我今年%d岁!
", age);
return 0;
}
基本数据类型
C语言中的基本数据类型有四大类:基本类型、构造类型、指针类型、空类型。
整型、实型与字符型
注释:整型数据是指不带小数的数字,浮点数据是指带小数的数字。
整型的类型
浮点型的类型
格式化输出
格式化输出语句,也可以说是占位输出,是将各种类型的数据按照格式化后的类型及指定的位置从计算机上显示。
其格式为:printf("输出格式符",输出项);
C语言中的常用格式化符:
当输出语句中包含普通字符时,可以采用一下格式:
printf("普通字符输出格式符", 输出项);
int a = 10;
printf("a=%d", a);
输出结果:
a = 10
如果要输出多个变量的并指定变量的位置时候,格式符还可以连用,变量之间需要用逗号隔开;
int a = 10;
float b = 7.56
char x = 'c';
prntf("整数:%d, 小数: %f , 字符:%c", a, b, c);
输出结果:
整数:10,小数:7.560000,字符:c
注释:格式符的个数要与变量、常量或者表达式的个数一一对应
不可改变的常量
值不发生改变的量称为常量。C语言的常量可以分为直接常量和符号常量。
直接常量也称为字面量,是可以直接拿来使用,无需说明的量,比如:
- 整型常量:13、0、-13;
- 实型常量:13.33、-24.4;
- 字符常量:‘a’、‘M’
- 字符串常量:”I love imooc!”
分别打印四种直接常量:
printf("%d
", 100); //整型常量
printf("%f
", 3.14); //实型常量
printf("%c
", 'A'); //字符常量
printf("I am C"); //字符串常量
用一个标识符来表示一个常量,被称之为符号常量。符号常量在使用前必须先定义,其一般形式为:
#define 标识符 常量值
符号常量的标示符一般习惯使用大写字母,变量的标示符一般习惯使用小写字母,加以区分。下面是一个使用符号常量的小例子:
#include <stdio.h>
#define PI 3.14 //定义一个圆周率常量
int main()
{
printf("圆周率: %f
", PI);
return 0;
}
运算结果:
圆周率:3.140000
注释:常量是不可变的
自动类型转换
数据类型存在自动转换的情况,比如:
char c='a';
int x;
double d;
x=c; //字符类型可以自动转换为整型
d=x; //整型可以自动转换为浮点类型
自动转换发生在不同数据类型运算时,在编译的时候自动完成。自动转换的规则如下图:
char类型数据转换为int类型数据遵循ASCII码中对应的值。
注释:字节小的可以向字节大的自动转换,但是字节大的不能向字节小的自动转换。
#include <stdio.h>
int main()
{
char c = 'a';
int n = c; //将c赋值给n
float f = n; //将c赋值给f
double d = f; //将c赋值给d
printf("%d
",n);
printf("%f
",f);
printf("%lf
",d);
return 0;
}
强制类型转换
强制类型转换是通过定义类型转换运算来实现的。其一般形式为:
(数据类型)(表达式)
作用是把表达式的运算结果强制转换成类型说明符所代表的类型,例如:
double tempOne = 6.777
int tempTwo = (int)tempOne;//强制转换为int类型
printf("%f
", tempOne);
printf("%d
", tempTwo);
输出结果:
6.777000
6
注释:使用强制转换时应该注意:
- 数据类型和表达式都必须加括号,如把(int)(x/2+y)写成(int)x/2+y则成了把x转换成int型之后再除2再与y相加了。
- 转换后不会改变原数据的类型及变量值,只在本次运算中临时性转换。
- 强制转换后的运算结果不遵循四舍五入原则。