类型转换
一般来说,如果二元运算符的两个操作数具有不同的类型,较低的类型提升为较高类型,结果为较高类型。
表达式由float类型的操作数不会自动转换为double类型。使用float类型主要是为了在使用较大的数组时节省存储空间,节省执行时间(双精度运算特别费时)。
赋值运算符右边的值需要转换为左边变量的类型。
无论是否进行符号扩展,字符型号变量都将转换为整型变量。
int i;
char c;
i = c;
c = i; //c值将保持原值
或c = i;
i = c; //i值可能丢失信息
强制类型转换
(类型名)表达式
自增自减
if(c == ‘
’){
s[i] = c;
++i;
}
等价于
if(c == ‘
’){
s[i++] = c;
}
1 #include <stdio.h> 2 void squeeze(char s[], int c); 3 4 main(){ 5 int d; 6 char s[] = "abcd$%^^&*(tewrtopwert"; 7 squeeze(s,'$'); 8 printf("%s", s); //输出abcd%^^&*(tewrtopwert 9 return 0; 10 } 11 12 /**从字符串s中删除字符c**/ 13 void squeeze(char s[], int c){ 14 int i,j; 15 for(i = j = 0; s[i] != '