因为ASSIC码表中的大部分数字都比较小,所以字符用char类型的表示就行了
char str = 65;
char str = 'A';
注意 printf("%c",'str');这种形式只能打印一个字符,比如后面的参数为'str',则只能打印出r
4)转义字符 \
\n表示回车
\t表示Tab
\"双引号
\\反斜线
4)字符串数组
1:定义方法
char str[6] = {'h','e','l','l','0','\0'};
注意,字符串数组必须以'\0'或者0来结尾
我们通常用这种方式来定义
char str[6] = "hello"; 通常会直接省略str数组的元素个数
char str[] = "hello"; 系统会在后面自动补0
但是 str[5] = "hello" 这种定义方式是错误的,会提示“str”: 数组界限溢出
2:打印方式 %s
3:字符串数组在打印的时候,遇到'\0'或者0会自动结束输出,但是0后面的内容还是会存储在内存中
6:算数表达式的注意事项
1)在模运算(%)中,操作数不能是小数
2)在除法(/)运算中,整型相除的话结果去掉小数,只保留整数部分,浮点型相除则保留小数部分
3)解析加法运算
a = a + b;
①从a的内存中取出a的值,交给加法器
②从b的内存中取出b的值,交给加法器
③加法器开始运算,求得两数之和,存到输出(寄存器)中
④将加法器的输出值存到a的内存中
4)赋值表达式本身就是一个值
printf("%d",(a=10)); a=10本身就是一个值
5) a+= b-1 等价于 a = a + ( b - 1 )
6) ==通常用于整型 因为浮点型可能存在无限循环的情况,无准确的值
7:逻辑表达式
&&和||中 如果表达式左边判断成立,则会终止计算,比如下面的例子
① int a = 10;
int b = 9;
int c;
printf("%d",a>b||(c=4)); //当a>b成立的时候,直接返回真 c=4不会被运算,所以下面打印出来的c还是0
printf("%d"