A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Lin3 初级黑马   /  2019-3-21 15:10  /  1444 人查看  /  7 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

自2月28日开班至今,已半月有余。在这半个多月的时间里我收获良多。
首先申明,c是信仰!
在来黑马上课之前,我只是单纯的看过几个片段的视频课,没有什么基础。
来黑马上课之后,明显的感觉基础有提升,更重要的是有一群志同道合的同学一起努力奋斗。
基础课上重复了一遍C语言的语法,然后每讲一个知识点后都有时间自己敲代码去真正掌握。
然后就是遇到不懂的地方可以找大佬、助教或者讲师讲解。(当年自学时,最大的坑)
再细细的数下课余收获:
  开班第一天,和同学大佬讨论了C语言和c++在io的区别,讨论了scanf和cin对于输入溢出的处理机制:
cin对于接收的数值溢出时,会将该类型最大数值复制给变量;
scanf对于溢出的数值,先将输入存储于缓冲区,然后将缓冲区的的数据放入内存,溢出部分都抛弃。
scanf("%…) 读入正确返回值为1(溢出也属于正确),读入失败返回0(在输入超过20位数字时,实际赋值给变量的都位-1,cin也是一样,猜测是缓冲区的限度是20位)
printf("") 返回值位打印的字符数(中文字算两个字符,空格换行等也算字符)
hash的初步理解:
哈希算法相当于将不同的输入,选取一定的特征值,作为输出 来标记输入值。
把一个大的范围映射到一个小的范围,节省了空间,让数据更容易保存。
hash函数除了加密也常用于查找。
在考虑使用Hash函数之前,须要明确它的几个限制:
1. Hash的主要原理就是把大范围映射到小范围;所以,你输入的实际值的个数必须和小范围相当或者比它更小。不然冲突就会非常多。
2. 因为Hash逼近单向函数;所以,你能够用它来对数据进行加密。
3. 不同的应用对Hash函数有着不同的要求;比方,用于加密的Hash函数主要考虑它和单项函数的差距,而用于查找的Hash函数主要考虑它映射到小范围的冲突率。
/long | sca.out--stdin
管道符右边的可执行程序格式?
stdin接收管道符传输的标准输入参数
计算机内的数据是以补码形式存储的,正数的补码和原码一样,负数的补码是原码的反码+1;
unsigned转换之后的数据即是该数据的补码,除去符号位的影响。
if(n&1)可以判断奇偶性。
>>1效果等同/2
^异或 相同取0 不同取1
~ 取反
int a;
a=(a=20,a*3);合法成立
实际过程是先给a复制20,然后计算a*3,最后结果为60.
取余运算%,不能对小数操作,被除数和除数都不能为小数。
void (*f)(); //这里*f表示为一个函数,即f为函数指针
(void(*)()) //这个表达式就可以看做一个函数指针的转换符
(void(*)()) 0 //就是将0地址进行类型转换成一个函数指针
(*(void(*)())0) () //这里就是将转换过的0地址解引用,来调用其指向的函数
重点是将0看做地址,然后进行转换后调用
等效于:
typedefvoid(*fp)(); //将fp定义为一个返回值为void 的函数指针
(*(fp)0)();
位运算实现加减:
首先c=(a&b)<<1得出应该进1的位;
然后d=(a^b)得出相加没有进1的位;
再(c&d)<<1得出进一步进1的位....
如果c&d为0,则返回c | d;
递归....
这个过程相当于写竖式计算加减法,满2进1.
关于细节就不作过多描述了!
最后强调一下:C++天下第一!

7 个回复

倒序浏览
苦难有如乌云,远望去但见墨黑一片,然而身临其下时不过是灰色而已。——里希特
回复 使用道具 举报
深窥自己的心,而后发觉一切的奇迹在你自己。——培根
回复 使用道具 举报
屁,我大PHP才是
回复 使用道具 举报
大多数人想要改造这个世界,但却罕有人想改造自己。
回复 使用道具 举报
只要朝着一个方向努力,一切都会变得得心应手。加油
回复 使用道具 举报
6得一逼
回复 使用道具 举报
今天很残酷 明天更残酷 后天很美好,坚持
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马