简图记录-C语言语法总结(三)符号

简图记录学习~

    C语言基本符号有20多个,每个符号在不同场景可能存在不同含义,并且还可以组合使用,可以说比较复杂。

一、注释符号

    C语言注释符号有/*...*/ 和 \\两种,注意要点如下:

(1)/*...*/编译器将会在预编译时替换为空格而不是简单剔除,如int/*...*/a;写法合法而in/*...*/t a;不合法;

(2)/*...*/不可嵌套使用;

(3)注意y=x/*p编译时会报错,编译时会先识别为注释符,可以写为y=x/(*p)或者y=x/ *p;

(4)注意//会注释到行尾部,如果该行行尾有续接符\要把接下来一行也作为注释。

二、反斜杠\符(有 续接符 和 转义符 两种功能)

    续接符当\出现在行尾,注意后面不能再有任何字符 如空格 作为续接符号,编译器在编译时会剔除掉\并将下一行的内容自动接到当前行尾部。如:

/\
/这是一条合法的注释

#defin\
ine MAX(a,b) (a>b?a:b)

    转义符:和普通字符一样,出现在单引号或者双引号中时\将识别为转义符 尝试进行转义。共3种用法:

(1)8进制数表示ASCII,\加8进制数--->如'\141'表示'a';

(2)16进制数表示ASCII,\x加16进制数--->如'\x61'表示'a';

(3)特殊字符表示,\加特殊字符,包含 响铃\a 退格\b 换页\f 换行\n 回车\r 水平制表符\t 垂直制表符\v 表示一个反斜杠符\\ 表示一个单引号\' 表示一个双引号符\" 表示一个问号\?;

    转义字符使用要点:1、只能接小写字符; 2、如果\后不匹配转义那么\会被忽略,如printf("a\Bc")实际输出aBc;3、注意\0 是NULL空字符而非字符0,0ASCCII码为48

三、单双引号

    注意'x'为一个字符而“x”为一个字符串还包含一个\0字符。

四、逻辑运算符||和&&

    注意||当第一个条件为1不会执行第二个条件,&&当第一个条件为0也不会执行第二个条件。如

int i=0,j=0;
if ((++i>0) || (++j>0))
{
    printf("i=%d j=%d\n",i,j);
}
/*实际i=1,j=0*/

五、预算符优先级

优先级运算符名称或含义使用形式结合方向
1[]数组下标数组名[常量表达式]左到右
()圆括号(表达式)/函数名(形参表)
.成员选择(对象)对象.成员名
->成员选择(指针)对象指针->成员名
2-负号运算符-常量右到左
(类型)强制类型转换(数据类型)表达式
++自增运算符++变量名/变量名++
--自减运算符--变量名/变量名--
*取值运算符*指针变量
&取地址运算符&变量名
!逻辑非运算符!表达式
~按位取反运算符~表达式
sizeof长度运算符sizeof(表达式)
3/表达式/表达式左到右
*表达式*表达式
%余数(取模)整型表达式/整型表达式
4+表达式+表达式左到右
-表达式-表达式
5<<左移变量<<表达式左到右
>>右移变量>>表达式
6>大于表达式>表达式左到右
>=大于等于表达式>=表达式
<小于表达式<表达式
<=小于等于表达式<=表达式
7==等于表达式==表达式左到右
!=不等于表达式!= 表达式
8&按位与表达式&表达式左到右
9^按位异或表达式^表达式左到右
10|按位或表达式|表达式左到右
11&&逻辑与表达式&&表达式左到右
12||逻辑或表达式||表达式左到右
13?:条件运算符表达式1? 表达式2: 表达式3右到左
14=赋值运算符变量=表达式右到左
/=除后赋值变量/=表达式
*=乘后赋值变量*=表达式
%=取模后赋值变量%=表达式
+=加后赋值变量+=表达式
-=减后赋值变量-=表达式
<<=左移后赋值变量<<=表达式
>>=右移后赋值变量>>=表达式
&=按位与后赋值变量&=表达式
^=按位异或后赋值变量^=表达式
|=按位或后赋值变量|=表达式
15,逗号运算符表达式,表达式,…左到右

容易出错的计算:

(1)*a.p为*(a.p)对成员取值 ;

(2)int *a[10]为int *(a[10])指针数组

(3)int *f()为int *(f())函数 ;

(4)if (val & mask!=0)为if(val&(mask!=0))先计算!=符;

(5)msk <<4+1为msk<<(4+1)先计算+

(6)c=getchar()!=EOF为c=(getchar()!=EOF)

六、整除与取余问题

 

    若a=m/n;b=m%n;

(1)必须满足a*n+b=m;(2)当m,n同号时a为正,异号a为负;(3)取余数时b符号和m一致。

    如:3/-2=-1 3%-2=1; -3/2=-1 -3%2=-1;  -3/-2=1 -3%-2=-1;

七、ASCII码记忆点

    45~57为字符0~9;65~90为大写英文字母;97~122为小写英文字母;32为空格;0为空字符;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值