C/C++实践笔记 010位运算与宽字符

位运算
开灯关灯

^异或遇0不变,遇到1反转

异或可以不借助中间变量实现数据交换

加密解密

位取反~

<<左移,等价于乘上2,越界保留左边
>>右移,等价于除以2,整除

printf scanf返回值

printf纯字符串返回字符的个数
scanf的返回值是成功抓到多少个数据

scanf正则表达式
scanf("%[^,]",str); 逗号作为结束符,取反意味着遇到,就结束

scanf("%[1]",str); 遇到第一个不是1的字符结束,只接受1
scanf("%[0-9]",str); 遇到不是0-9的就结束

内存实体以及运算符优先级

const int b=10;

宽字符

MessageBox
与设置有关,默认unicode需要宽字符(加上L) L"你好天朝"
窄字符设置多字节字符集

宽字符的2个字节,表示范围大
窄字符表示范围小,节约内存
可以用TEXT自动调节

MessageBoxA A代表窄字符
MessageBoxW代表宽字符
设置属性对它们没有影响

L,l代表宽字符处理
宽字符用wprintf,wscanf,putwchar

#include<locale.h> //本地化头文件
setlocale(LC_ALL,"ZH-CN");//代表中文
wchar_t wstr[10]=L"你好";

auto关键字,自动分配自动释放

函数里定义的变量默认是auto

C99 _Bool
占1个字节,有两个值,true和false

整数的操作意义

赌博概率
赌博机实现

随机数依赖种子

#include<time.h>
time_t ts;
unsighed int num=time(&ts); //获取时间种子
srand(num);
int data=rand()%100;


逻辑问题

打印可见字符 32-126属于可见字符

posted @ 2016-12-27 21:40  千年风雅丶  阅读(216)  评论(0)    收藏  举报