3-4.常用转义字符
#include <stdio.h>
int main(){
printf("c\tlanguags\be\rC\n");
printf("is\tusef\165\x6c\n");
return 0;
}
/*
C language
is useful
*/
其中,'\t'表示水平制表,设占8列
'\b'表示退格,将当前位置前移一位。已经输出的‘s’被'e'代替。
'\r'表示将当前位置移到本行开头,将第一个c以C代替。
'\n'表示换行。
165是八进制数,转换为十进制ASCII码为117,'\165'表示‘u’
x6c转换为十进制ASCII 吗为108,'\x6c'表示字符‘l’
3-5 字符常量的使用
#include <stdio.h>
int main(){
char ch1;
int ch2;
ch1='A';ch2='B';
printf("%c %c\r\n",ch1,ch2);
printf("%d %d\r\n",ch1,ch2);
ch1=97;ch2=98;
ch1=ch1+6;
ch2=98+6;
printf("%c %c\r\n",ch1,ch2);
printf("%d %d\r\n",ch1,ch2);
return 0;
}
/*
A B
65 66
g h
103 104
*/
3-6 赋值运算后 变量原来的值被表达式的值替换
#include <stdio.h>
int main(){
int k=10,j=20;
printf("j = %d\n",j);
j = k+50;
printf("j = %d\n",j);
return 0;
}
3-7 赋值表达式的值也就是赋值运算符左边变量得到的值。如果右边表达式类型与左边不一致,以左边变量的类型为基准,将右边的类型无条件转换为左边的类型。相应的表达式的值类型与被赋值变量的类型一致。
#include <stdio.h>
int main(){
int a;
double b=3.5;
a=b+2.1;
printf("a=%d\n",a);
return 0;
}
/*
a=5
*/
3-8 复合赋值运算符和赋值表达式
a+=a-=a=b+c等价于 a+=(a-=(a=b+c))
3.9 强制类型转换
对变量进行强制类型转换时,只能得到一个中间值,并不会改变变量原有的类型。
强制类型转换运算符的优先级高于取余运算符 %
#include <stdio.h>
int main(void) {
double y = 7.56;
int a=2,b;
b=(int)y%a;
printf("b=%d\n",b);
printf("y=%f\n",y);
return 0;
}
/*
b=1
y=7.560000
*/
3-10 自增和自减运算
#include <stdio.h>
int main(void) {
int i=5,j=5;
i++;
++j;
printf("i=%d\n",i);
printf("j=%d\n",j);
return 0;
}
/*
i=6
j=6
*/
3-11
当x++和++x出现在其他表达式时,其结果是不同的。
作为表达式,两者的值不同。
++x的值等于x的原值加1
x++等于原值
即:x++是先加1后,再在其所在的表达式中使用x的值。
++x是在其所在的表达式中先使用x的值完成计算后,然后将x的值加1.
#include <stdio.h>
int main(void) {
int i=1,j=1,m;
m=i++;
printf("i=%d,m=%d\n",i,m);
m=++j;
printf("j=%d,m=%d\n",j,m);
printf("i=%d,m=%d\n",i--,--j);
return 0;
}
/*
i=2,m=1
j=2,m=2
i=2,m=1
*/
3-12
#include <stdio.h>
int main(void) {
int i=1;
printf("i=%d\n",-i++);
printf("i=%d\n",i);
return 0;
}
/*
i=-1
i=2
*/
3-13 位运算
#include <stdio.h>
int main(void) {
unsigned int A=0xb3,B=0x9a;
printf("-A = %d\n",-A);
printf("A&B =%x\n",A&B);
printf("A|B =%x\n",A|B);
printf("A^B =%x\n",A^B);
A=27;
B=28;
printf("A<<1 =%u\n",A<<1);
printf("B>>1 =%u\n",B>>1);
return 0;
}
/*
-A = -179
A&B =92
A|B =bb
A^B =29
A<<1 =54
B>>1 =14
*/