目录
一、字符和字符串
1.字符
2.ASCII字符表
3.字符串
二、算术运算符
1.什么是目?
2.表达式
3.运算符的优先级和结合性
4.类型转换
一、字符和字符串
1.字符
- 字符变量可以用来存放整数
- 字符变量可以用来存放整数
代码举例:
#includeint main() { char a = 'C'; printf("%c = %dn", a, a); return 0; }
运行结果:
2.ASCII字符表
ASClI(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC646。
标准ASCⅡ字符表使用7位二进制数来表示所有的大写和小写字母,数字0到9、标点符号,以及在美式英语中使用的特殊控制字符。
- ASCIl字符表上的数字0~31以及127(共33个)分配给了控制字符,用于控制像打印机等一些外围设备。
- ASCIl字符表上的数字32~126分配给了能在键盘上找到的字符,当查看或打印文档时就会出现
代码举例:
#includeint main() { char a = 70, b = 105, c = 115, d = 104, e = 67; printf("%c%c%c%c%cn", a, b, c, d, e); return 0; }
运行结果:
结论:字符类型是一个特殊的整型。但对于整型,若不写signed或unsigned,系统默认是signed;但对于字符类型,C语言并没有规定默认的是signed还是unsigned,由编译系统自行决定。
代码举例:
#includeint main() { unsigned char height; height = 170; printf("他的的身高是%d厘米!n", height); return 0; }
运行结果:
若不加“unsigned”,则结果为:
可见, 若用char来存放身高的话,必须添加“unsigned”。
3.字符串
- 声明字符串的语法:char 变量名[数量];
- 通过索引号获得每个变量的空间:变量名[索引号] = 字符;
例:
- 声明字符串:char name[2];
- 给字符串赋值:name[0] = 'F'; name[1] = 'i';
- 定义字符串:char name[5] = {'F', 'I', 'S', 'H', 'c'};
代码举例:
#includeint main() { char a[4] = {'L', 'O', 'V', 'E'}; printf("%sn",a); return 0; }
运行结果:
这个结果似乎没有什么问题,但如果再打印一个别的(比如hello),那么就会出现乱码。这是因为,为了确定字符串在内存中的结束位置,C语言规定在字符串的最后加一个“ ”来表示结束。
对上述代码进行修改如下:
char a[5] = {'L', 'O', 'V', 'E', ' '};
也可直接写一对“[]”,如下:
char a[] = {'L', 'O', 'V', 'E', ' '};
或者直接写字符串常量,需用双引号括起来,也无需加“ ”。如下:
char a[] = {"LOVE"};
如果使用字符串常量,也可以把大括号去掉。如下:
char a[] = "LOVE";
二、算术运算符
C语言通过提供运算符来支持我们对数据进行处理。
1.什么是目?
运算符作用的操作对象称为操作数,运算符是双目还是单目取决于它有多少个操作数,起作用的有多少个操作数。
C语言有唯一的一个三目运算符,它有3个操作数,后续会作补充。
2.表达式
用运算符和括号将操作数连接起来的式子,称为表达式。
如:1 + 1; 'a' + 'b'; a + b; a + 'b' + pow(a,b) * 3 / 4 + 5
3.运算符的优先级和结合性
正号运算符、负号运算符 > /、*、% > +、-
代码举例:
#include#include int main() { int i,j,k; i = 1 + 2; j = 1 + 2 * 3; k = i + j + -1 + pow(2,3);//3 + 7 + (-1) + 8 printf("i = %dn",i); printf("j = %dn",j); printf("k = %dn",k); return 0; }
运行结果:
4.类型转换
类型转换是为了确保计算的精度。
代码举例:
#includeint main() { printf("整型输出:%dn", 1 + 2.0); printf("浮点型输出:%fn", 1 + 2.0); }
运行结果:
可见,整型输出为错误结果,这是因为,1 + 2.0 自动转换后的结果为 1.0 + 2.0,是一个浮点型的数,浮点型的数强制变为整型的数输出就会打印出错误的结果。
C语言允许我们强制转换操作数的数据类型,在操作数的前面用()将目标数据类型括起来即可。如下:
#includeint main() { printf("整型输出:%dn", 1 + (int)2.0); printf("浮点型输出:%fn", 1 + 2.0); }
运行结果:
若将2.0改为1.8,则结果为:
若将2.0改为(1 + 0.8),则结果为:



