<c语言深度解剖>第二章符号笔记

2.1 注释
int/**/i;
结果ok
char* s = "abcdefgh //hijklmn";
结果ok
Is it a\
valid comment?
结果ok
in/**/t j;
结果error
y=x/*p;
y=x/ *p;
y=x/(*p);
结果error
结果ok
结果ok

2.2 接续符和转义符
这是一条合法的\
单行注视

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

#def\
ine MAC\
RO 这还是一条合法的\
宏定义

\n:回车换行
\t:横向跳到下一个指标位置
\v:竖向跳格
\b:退格
\r:回车
\f:走纸换页
\\:反斜杠符"\"
\':单引号符
\a:鸣铃
\ddd:1~3位八进制数所代表的字符
\xhh:1~2十六进制数所代表的字符

第一个逻辑正确时第二个逻辑将不再执行
if((i++)||(j++))
//不妥,后者可能执行也可能不执行
if((i++)||(fun()))
//不妥,后者可能执行也可能不执行
if((fun())||(a==5))
//合适,前者执行,后者执行否无所谓

printf("char*:%d\n", sizeof(char*));
printf("short*:%d\n",sizeof(short*));
printf("int*:%d\n",  sizeof(int*));
printf("float*:%d\n",sizeof(float*));
printf("double*:%d\n"sizeof(double*));
输出4 4 4 4 4

printf("%d\n",0x01<<2+3);
输出32
printf("%d\n",0x01<<2+30);
输出0,不能超过0x01长度
printf("%d\n",0x01<<2-3);
输出0,不能为负数

int i =3;
printf("%d\n",(++i)+(++i)+(++i));
输出16,依赖测试环境

int i =0;
int j = 0;
j = (i++,i++,i++);
printf("%d\n",j);
输出2

c语言提供一种特殊的运算符,逗号运算符,优先级别最低,它将两式联接起来,如:(3+5,6+8)称为逗号表达式,其求解过程先表达式1,后表达式2,整个表达式值是表达式2的值,如:(3+5,6+8)的值是14。(a=3*5,a*4)的值是60。

int i = 0;

for(i=0,printf("First=%5d",i);\
;\
i++,printf("Third=%15d",i)\
)
{
    printf("Fourth=%20d\n",i);
}
判断条件i<10实际没有发挥作用,逗号表达式取后者的值,可以改成printf("Second=%10d",i),i<10
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值