C/C++
GameForTwo
这个作者很懒,什么都没留下…
展开
-
关于srand((unsigned)time(NULL))
函数rand()是真正的随机数生成器,而srand()会设置供rand()使用的随机数种子。函数rand()会返回一个处于0和你所指定的数值(缺省为1)之间的分数。如果你在第一次调用rand()之前没有调用srand(),那么系统会为你自动调用srand()。而使用同种子相同的数调用srand()会导致相同的随机数序列被生成。 srand((unsigned)time(NULL原创 2017-11-08 16:46:13 · 840 阅读 · 0 评论 -
char a[] = "abc" 与 char *p = "def"区别浅析
char a[] = "abc"; 中a是数组名,编译时为其分配4个char单元,前3个单元用“abc"中的字符对应初始化,最后一个存放'\0'。 char *p = "def"; 在编译时先生成"def"字符串常量,存放在常量区,并将首地址(c的地址)赋给char *型指针变量p。 从以上可知,二者的区别在于:数组名a和指针变量p虽然本质上都是地址,但是数组名a它的地址是不变的,即它是一...原创 2018-11-09 10:19:57 · 1459 阅读 · 0 评论 -
《C陷阱与缺陷》读书笔记
这本书很薄,仅有150来页,正文大概120页,最后附上了课后答案及建议。上周花了三天断断续续看完,先做一个总结。第一章:词法陷阱词法分析中的贪心算法:每个符号应该包括尽可能多的字符。因此,注释的嵌套是不允许的。 符号的中间不能嵌有空白(空格符、制表符和换行符)。例如,==是单个符号,= =则是两个符号。例如, a---b ;a -- - b ;a - -- b ; 前两项含义...原创 2018-11-06 16:11:25 · 397 阅读 · 0 评论 -
C语言中的volatile用法
Part 1:前缀理论知识介绍1 > 编译器的优化 由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别的优化。再看软件一级的优化:一种是在编写代码时由程序员优化,另一种...原创 2018-10-15 10:52:39 · 700 阅读 · 0 评论 -
C语言中的指针
1. int *p 上式说明p是指向int类型对象的指针变量。 2. 为了找到变量的地址。可以使用取地址运算符&。如果x是变量,那么&x就是x在内存中的地址。 为了获取指针所指向对象的访问,可以使用间接寻址运算符*。如果p是指针,那么*p表示p当前指向的对象。 3. 只要指针p指向变量i,那么*p就是i的...原创 2018-09-21 11:39:42 · 137 阅读 · 0 评论 -
在VS2017创建C语言项目
Step 1.文件->新建->项目 Step 2. 选择控制台应用程序,项目名称和存储路径可由自己定义。然后点击确定->下一步 Step 3. 在弹出的对话框中,依次选择控制台应用程序和空项目,然后点击完成。 Step 4. 在生成的project中,右键点击源文件->添加->新建项,选择C++文件,重新命名文件名,并将文件后缀...原创 2017-10-31 14:45:20 · 32150 阅读 · 4 评论 -
C99中的for语句
在C99中,for语句的第一个表达式可以替换为一个声明,这一特性使得程序员可以声明一个用于循环的变量: for(int i=0;i变量i不需要在该语句之前声明。事实上,如果变量i在之前已经进行了声明,这个语句将创建一个新的i且该值仅用于循环内。 for语句声明的变量不可以再循环外部访问。原创 2017-11-03 11:44:57 · 1165 阅读 · 0 评论 -
求最小公倍数和最大公约数
1.最小公倍数=两整数的乘积÷最大公约数2.求最大公约数算法(辗转相除法) 有两整数a和b: ① a%b得余数c ② 若c=0,则b即为两数的最大公约数 ③ 若c≠0,则a=b,b=c,再回去执行①/*辗转相除法求最大公约数*/#include int main(){ int m,n,temp原创 2017-11-03 16:47:31 · 331 阅读 · 0 评论 -
逻辑或“||”
1.在C语言中,逻辑或的值只能为0或者1 例如:0||-1==1(不是-1)2.而在JavaScript中,当一个布尔值0与一个布尔值1逻辑或时,值为布尔值1所代表的值 例如:0||-1==-1原创 2017-11-02 18:23:50 · 533 阅读 · 0 评论 -
部分C语言运算符优先级
原创 2017-11-01 16:50:49 · 196 阅读 · 0 评论 -
关于C语言
1.在C语言中,标识符可以包含数字、字母和下划线,但开头必须是字母或者下划线。2.C语言区分大小写。原创 2017-10-31 19:34:27 · 260 阅读 · 0 评论 -
对同一个数组进行多次初始化
int a[]={4,9,1,8,[0]=5,7};Q:上述声明是否合法?若合法,数组长度是多少?A:这个声明是合法的。下面是它的工作原理: 编译器在处理初始化列表时,会记录下一个待初始化的数组元素位置。正常情况下,下一个元素是刚被初始化的元素后面的那个。但是,当列表中出现初始化式时,下一个元素会被强制为指示符对应的元素,即使该元素已经被初始化过。下面逐步分析编译器处理数组a原创 2017-11-08 17:09:38 · 1336 阅读 · 0 评论 -
《C和指针》随记
/* 前阵子花两周时间又把《C和指针》过了一遍,陆陆续续做了些笔记,现总结如下。。。*/第一章 快速上手 1. EOF是一个int型数值。 2. 去除某段代码,将其注释掉不是一个好选择,更高效、安全的办法是使用 #if #endf#if 0 statements#endif 3. 在C语言中,数组参数是以引用形式进行传递的,也就是传...原创 2018-11-20 15:36:01 · 204 阅读 · 0 评论