一、字符串类型
二、运算符
1.算术运算符:+ 、-、 *、 /、 %、 ++、--
注: (1)%的正负由左操作数的正负决定,其操作数必须是整形或是整形相兼容,%的结果小于右操
作数,%运算符不能对浮点数进行操作。
(2) ++i:先加再用,没有开辟临时变量
i++:先用再加,开辟了临时变量
效率:++i >i++
float可以进行自加/自减操作
(3)临时变量\匿名变量:被临时开辟出来的空间,使用后会被回收
所有临时变量都是右值而非左值
2.赋值运算符:= 、+=、-=、*=、/=
左值:(left value\locatiable)放在赋值运算符左边的\可被取地址的叫左值。
右值:(right value\readable)放在赋值运算符右边的\不可被取地址的叫右值。
左右值判断:能否取地址
注:(1) 左值只能为变量,不能是常量及表达式
(2) const 关键字只能被初始化,不能被赋值
eg:int const i=const int i表达意思一致
(3) 赋值是内存空间的拷贝,若空间一样,可以直接拷贝
(4) 符号位扩展:小数据放入大空间,补符号位,正数补0,负数补1
补0扩展:无符号数(unsigned)补0
(5)高位截断:大数据放小空间,直接截断高位,低位输出
(6)浮点数类型赋值给整型,就舍去小数点后精度
3.逗号运算符:a=(a+b,a-b,a*b,a++,a--)
(1)逗号运算连接的逗号表达式从左到右依次执行
(2)最后一个表达式的结果作为整体表达式的结果
三、类型转换
1.隐式转换:
(1)运算符左右两边不一致时需要转换为统一类型再进行数据处理及运算
(2)浮点型精度>整数型精度,无符号>有符号
2.显式转换:强制类型转换,将数据类型强制转换为某一类型
练习:编写程序,计算给定的某三位数每一位的平方和。
#include<stdio.h>
int main (void)
{
int i=123;
int a,b,c,sum;
a=i%10;
b=i/10%10;
c=i/100;
sum=a*a+b*b+c*c;
printf("%d\n",sum);
return 0;
}