字符变量
#include<stdio.h>
int main()
{
char c1='a';
char c2='\n';
chae c3='1';
printf("c1=%c c2=%c c3=%c",c1,c2,c3);
return 0;
}
\n为换行符,结束一行打印,并从下一行开始打印;
\n是一个字符不是两个,属于转义字符
转义字符:\数值(八进制)
转义序列 | 含义 | 八进制 | 十进制 |
\a | 报警 | 7 | 7 |
\b | 退格 | 10 | 8 |
\f | 换页 | 14 | 12 |
\n | 换行 | 12 | 10 |
\r | 回车 | 15 | 13 |
\t | 水平制表 | 11 | 9 |
\v | 垂直制表 | 13 | 11 |
字符串“Hello World”所占空间大小
#include<stdio.h>
int main()
{
printf("sizeof HelloWorld=%d\n",sizeof("HelloWorld"));
return 0;
}
运行之后得到 sizeof Hello World=11
只有10个字符,1个字符1个字节,为什么字符串多占一个字节呢?
原来为了标记字符串已经结束,会在字符串末尾多占用一个字节,在这个字节里面会填写数值0,用于标识字符串结束
例题:定义一个字符变量letter,将其初始化为大写字母A,通过ASCII中的关系,将大写字母A变成小写字母a,并将小写字母a打印出来
#include<stdio.h>
int main()
{
char letter='A';
letter=letter+32;
printf("letter=%c",letter);
return 0;
}
printf函数详细解析
printf函数是将字符串打印在屏幕上
公式:printf("占位1 占位2 ",替换1,替换2);
注意:printf是一个变参函数(参数个数及类型不确定)
printf的第一个参数是字符串
printf的第一个参数是需要输出的内容
printf的第二及后续参数将依次替换占位符
占位符的类型和数量需要与后续参数一一对应
例如下面这段代码
#include<stdio.h>
int main()
{
int a=1;
float b=2.345;
char c='a';
printf("整型a为%d 浮点b为%f 字符c为 字符c的显示为%c",a,b,c,c);
return 0;
}
运算符和表达式
一个或多个运算对象与零个或多个运算符组成表达式
例如:100 a/b 5+10 a*10/b+c
每一个表达式都有一个结果;表达式不能单独存在,必须以表达式语句形式存在
优先级表格
标记 | 操作符 | 类型 | 优先级 |
++-- | 自增、 自减 | 后缀 | 16 |
++-- | 自增 、自减 | 前缀 | 15 |
+- | 正、负 | 单目 | 15 |
* / % | 乘 、除、取余 | 双目 | 13 |
+ - | 加、减 | 双目 | 12 |
= | 赋值 | 双目 | 2 |
<> <= >= | 关系 | 双目 | 10 |
== != | 相等、不相等 | 双目 | 9 |
&& | 逻辑与 | 双目 | 5 |
|| | 逻辑或 | 双目 | 4 |