
C语言
Tri0mphe
这个作者很懒,什么都没留下…
展开
-
C语言 移位运算
今天看到这样一行代码 int n =0xfffffffe; int z = n >> 1 ; int m =(unsigned int )n >> 1; printf("%x %x\n",z,m);问输出的值是多少?答案是z=0xffffffff m=0x7fffffff这就会涉及到两个概念.逻辑移位,按位进行左右移动,不关心数值...原创 2018-12-28 01:53:28 · 680 阅读 · 0 评论 -
栈溢出学习
栈溢出原理介绍栈溢出指的是程序向栈中某个变量中写入的字节数超过了这个变量本身所申请的字节数,因而导致与其相邻的栈中的变量的值被改变。这种问题是一种特定的缓冲区溢出漏洞,类似的还有堆溢出,bss 段溢出等溢出方式。栈溢出漏洞轻则可以使程序崩溃,重则可以使攻击者控制程序执行流程。此外,我们也不难发现,发生栈溢出的基本前提是.程序必须向栈上写入数据。写入的数据大小没有被良好地控制。基本示例...原创 2019-08-02 18:22:44 · 408 阅读 · 0 评论 -
C陷阱与缺陷——学习笔记
词法 “陷阱”= 不同于 ==符号=是赋值运算符,符号==是比较运算符因为赋值运算出现频繁,所以使用较少的符号=来表示赋值操作.而我们经常因为少打一个=号,在比较运算中使用赋值运算.如while(c = ' ' || c == '\t' || c == '\n') c = getc (f);因为||的优先级高于赋值运算符=,所以上面表达式可以表示为c = (' ' |...原创 2019-08-02 18:26:16 · 300 阅读 · 0 评论