运算符
1、%运算左右两数必须为整型数据
2、/ 取整后向0靠拢
3、参与运算的两个数中有一个数为实数,则结果为double型,所有的实数都按double 型进行运算。
4、字符型数据可以和数值型数据混合运算,因为字符型数据在计算机内是用一个字节得整数进行表示。
5、负值运算的优先级高于算术运算符的优先级
如:
int a = 8 , b = 6 , c = 5 , y ;
y = - a - b * c + a / c ; // 运算顺序最先为 -a
6、自增自减运算符的优先级高于算数运算符的优先级,而与负值( - )运算符同级
如:
i = 2;
j = - i ++ ; // “ ++ ” 和 “ - ” 是同级优先关系 , 按从左至右方式结合 ,先计算 i++ ;
7、 使用 自增自减 运算符时需要小心谨慎 。
8、 逗号运算符
表达式1 , 表达式2
表达式的求解过程是: 先求解表达式1,在求解表达式2 。
整个逗号表达式的值是表达式2的值。
如:
x = ( y = 3 , y + 1) // x = 4
整个逗号表达式需要括号括起来,因为 逗号运算符 的优先级 低于 赋值 运算符
9、 求字节运算符 sizeof
返回括号中类型修饰符字节长度。
注意: sizeof( )不是函数 。
字符串
1、由双引号引起来的一串字符称为 字符串字面值 ,或简称 字符串。
2、 字符串以 \0 转义字符作为结束标志,在计算时需加上 \0 结束标志,但 \0 不算做 字符串内容。
3、c语言中不含字符串类型。
int main( )
{
// 字符串以 \0 转义字符作为结束标志,\0 不算做 字符串内容
char arr1[] = "BAT"; // 以字符串形式 \0 作为结束标志
char arr2[] = { 'B', 'A', 'T' }; // 字符形式
char arr3[] = { 'B', 'A', 'T', '\0' }; // 字符形式
// %s 格式输出
printf("%s\n", arr1); // 以字符串形式输出, 遇到 \0 作为结束。\0 不作为输出内容
printf("%s\n", arr2); // 以字符串形式输出, 没有 \0 作为结束 ,产生乱码
printf("%s\n", arr3); 以字符串形式输出, 遇到 \0 作为结束。\0 不作为输出内容
}
4、strlen( )
是一个求字符串本身内容长度的函数,不包括 \0 。 即字符串 结束标志 \0 不是字符串内容。