苏嵌30 16.12.16

能直接访问硬件的语言:c、汇编、c++


不同款编译器:看不同的标准

同一款编译器:看编译器支持的标准


IDE:集成开发环境


SVN/git版本管理器(git集成了内核)

SVN在ubuntu下用

c89/c99运用

c11微软编译器下用


运算符和表达式:

i++使用结束之后再自加


i=2情况下

num = (i++) +(i++) +(i++) + (i++);

相当于

num = i+i+i+i;  8 2+2+2+2

i = i + 1 做了4次 i=6


num = (++i) + (++i) + (++i) + (++i);

i = i + 1;  i = 3

i = i + 1;  i = 4

num = i + i;   8

i = i + 1;   i = 5

inum = num + i;   13

i = i + 1;    i = 6

num = num + i;   19   4+4+5+6


i = i *((i++) + (++i));   19


i = (i++) + (++i) + (i++) + (++i);  3+3+3+4+2  15

i = (++i) + (i++) + (++i) + (++i);  3+3+4+5+1  16


①函数传参从右边开始传参

    func(i++,++i); // (3,i)

②i++替换成数值  ++i替换成变量(名)

③c语音结束标志; \ , \ 函数的括号(


func(++i,i++); // (i,2)

func(i++,++i,i++,++i,i++); // (6,7,4,7,2)

func(++i,i++,i++,++i,i++); // (7,5,4,7,2)

func(i++,i++,++i,i++,++i); // (6,5,7,3,7)


短路与、短路或


异或~ 1和0为1 1和1为0


位运算处理无符号数


mask 掩码


无符号 左移拿0补 右移拿0补

有符号 左移拿0补 右移拿符号位补


按位与 通常对某些位清零或保留:

清零特定位(mask中特定位置0,其他位为1,s = s & mask)

取某数中指定位(mask中特定位置1,其他位为0,s = s & mask)


按位或 将某些位置1,其他位不变(mask中特定位置1,其他位为0,s = s | mask)


异或 使特定位取反(mask中特定位置1,其他位为0,s = s ^ mask)


扩展:

不采用中间变量变换a和b的值

a = a ^ b;

b = a ^ b;

a = a ^ b;

(不受大数影响)


a = a + b;

b = a - b;

a = a - b;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值