标识符与关键字
标识符:标识符是在程序中使用的变量名、函数名、标号等统称为标识符。标识符对大小写字母敏感。
用户自定义标识符时(包含数字、字母、下划线),必须以字母和下划线开头。且用户自定义的标识符不能连续出现两个下划线,也不能以下划线紧连大写字母开头。此外,定义在函数体外的标识符不能以下划线开头。
关键字:是C语言提供的有特殊含义的符号,也叫做“保留字”
C语言一共提供了32个关键字,这些关键字都被C语言赋予了特殊含义。具体可参见:标识符与关键字
运算符
优先级口诀:
括号成员排第一,全体单目排第二。
乘除余三加减四,移位五、关系六。
等于不等排第七。
位于异或和位或,三分天下,八九十。
逻辑或跟与,十二和十一。
条件高于赋值,逗号运算级最低。
下面来简单介绍一下各个运算符是如何使用的,这对新手来说至关重要,曾经我就因为运算符不知怎样使用,而导致在很多问题上犯了大错。
1、单目运算符:包含自增,自减,取负。自增自减都有两种形式:i++、++i,i–、--i,虽说在绝大多数情况下,两种形式的结果是相同的,但其还是有本质的区别的。++i,表示的含义是变量先增值后引用。而i++,是变量先引用后增值。
int x,y,i=25;
x=--i;
y=i;
x=24,y=24;//结果是x=24,y=24;
//现在我们换一种方式
int x,y,i=25;
x=i--;
y=i;
x=25,y=24//此时x=25,y=24;
而取负相当于取其相反数。
2、双目运算符加减乘除自然不用多说,余则值的是取余,取其余数。如14%3=2。值得注意的是在计算除数是,如果是浮点型除于整型时,则其整型自动转化为浮点型,即计算结果为浮点型。如3.4/2=1.7。
3、关系表达式为真时,用1或非零数值表示,关系表达式为假时,用零表示。 这与c++中算术类型中的布尔类型相似。提到算术类型,我们不妨多说一点,如图所示:
其中空类型不对应具体的值,仅用于一些特殊场合,最常见的是当函数不返回任何值时用空类型作为返回类型。
4、移位运算 a >>n表右移n位,相当于除于2的n次方;
a<<n表左移n位,相当于乘以2的n次方。如10110110这个数字,右移4位即为01101011。以此类推。
5、与、或、非
a&&b:表达式之间的关系,假若a,b表达式都为真,则该表达式的值为真(非零)假若a,b中任意一方为假,或都为假,则该表达式的值就为假(0)。
a||b:假如a或b任一方表达式为真,则其结果为真(非零),当a,b表达式都为假时,其值才为假(0)。
!a:
“逻辑非”就是指本来值的反值。
例如:" !0" 这个逻辑表达式的值为1.(判断的这个数为0,成立,则其表达式的值为1)
" !1" 这个逻辑表达式的值为0.(判断的这个数非0,不成立,则其表达式的值为0)
其运算规度则为,
1 如果a的值为0,则运算结果为1;
2 如果a的值非0,则运算结果为0。
按位与&:a&b 运算规则:在二进制中如 01&10的结果为00,这个记忆方式,你可以与&&联系起来:即同真为真,一假即假。
按位或|:a|b运算规则:01|10=11,可以与||联系起来:即一真即真,全假为假。
按位亦或^: a^b 相同为0,不同为1。如01^10=11。
按位取反~ :取其相反,如~01=10;
三目条件运算符 :如e1?e2:e3 该表达式含义为:若e1为真,则表达式的值为e2,否则表达式是值为e3.
字面值常量
整型常量 :我们可以将整型字面值写作十进制,八进制或十六进制。其中以0开头的整数代表八进制,以0x或0X开头的代表十六进制。如
20/十进制/ 024/八进制/ 0x14/十六进制/
字符串常量:在代码中由双引号括起来。如“hello world”,但需要注意字符串在储存时要以\0结束,也就是在原长度的基础上会加一。
浮点型常量 :浮点数是实数在计算机中的表现形式,只能以十进制表示。
小数形式:3.141、-25.3;
指数形式:3.14*10^-3可表示为3.14e-3或31.4E-2。
转义字符 :可表示1:不能打印的字符,2:在c++语言中由特殊含义的字符。
补充scanf与scan_f的区别