一、强制类型转换
语法格式:(类型)表达式
例,int x=5;
float b=3.5;
x=x+(int)y;
y的值是3.5,在进行运算时强制转换成int型,值为3参与运算。运算结束后,y的值仍然是3.5,float型。
二、
(1)sizeof 运算符
单目运算符,以字节形式给出其操作数的存储空间的大小。判断数据类型的字节长度。
例,确定整形数据类型的字节长度。
源程序:
#include<stdio.h>
int main()
{
printf("%d,%d,%d\n",sizeof(int),sizeof(short int),sizeof(long int));
return 0 ;
}
运行结果:4,2,4
(2)strlen(字符串):计算字符串长度
例:char str1[10] = “china”;
i=strlen(str1);
运行后i的值为5.
(3)strcmp(字符串1,字符串2):字符串比较函数
比较两个字符串,将两个字符串从左到右逐个字符比较(ASCII值)字符串1都等于字符串2则返回值0;字符串1<字符串2则返回值为-1;字符串1>字符串2则返回值为1.
(4)strcpy(字符数组1,字符数组2):字符串拷贝函数
将字符串2完整的拷贝到字符串1中,字符串1中原有的内容被覆盖。函数值为字符串1的地址。
(5)strcat(字符数组1,字符数组2):字符串连接函数
把字符数组2连接到字符数组1的字符串尾端,并存储于字符数组1中。
三、常用运算符的优先级:
逻辑!->算数逻辑->关系运算->逻辑&&->逻辑||->条件运算符->赋值运算->逗号表达式(由高到低)
条件运算符 (结合性:右结合性)
语法格式:(表达式1) ? (表达式2) : (表达式3)
释:如果表达式1条件成立,则输出表达式2,否则输出表达式3.
有如下总结:借鉴牛客达人的
= += -= *= /= %= |= ^= &= >>= <<=均为赋值运算符,
赋值运算符的优先级只比逗号运算符高,所以会先“+”之后再“*=”。
一共有十五个优先级:
1 () [] . ->
2 ! ~ -(负号) ++ – &(取变量地址)* (type)(强制类型) sizeof
3 * / %
4 + -
5 >> <<
6 > >= < <=
7 == !=
8 &
9 ^
10 |
11 &&
12 ||
13 ?:
14 = += -= *= /= %= |= ^= &= >>= <<=
15 ,
就着多吧 结合性:2 13 14 是从右至左 其他都是 从左至右有问题可以在交流的
口诀为
全体单目第二; //所有的单目运算符比如++、 --、 +(正)、 -(负) 、指针运算*、&乘除余三,加减四; //这个"余"是指取余运算即%
移位五,关系六; //移位运算符:<< >> ,关系:> < >= <= 等
等于(与)不等排第七; //即== 和!=
位与异或和位或; //这几个都是位运算: 位与(&)异或(^)位或(|)
"三分天下"八九十;
逻辑或跟与; //逻辑运算符:|| 和 &&
十二和十一; //注意顺序:优先级(||) 低于 优先级(&&)
条件高于赋值, //三目运算符优先级排到13 位只比赋值运算符和","高
逗号运算级最低! //逗号运算符优先级最低