- 博客(8)
- 收藏
- 关注
原创 随机函数rand
rand:随机函数但由于内部起始值默认是1,所以根据内部公式,只用rand函数的话数字其实并不是真正随机的。例:void main(){ int res = rand() printf("%d\n",res);}这个输出的值每次都是相同的。如何让数字变得相对随机呢,那么要让rand的起始值变化。这里介绍一下srand:srand(x); 将rand的初始值改为x。在这里引用系统的时间(因为系统时...
2018-03-20 20:52:56
1996
原创 常见的二进制位的变换操作
去掉最后一位 | (101101->10110) void part1(unsigned int a){ a >> 1; printf("a=%#a\n", a);}在最后加一个0 | (101101->1011010) void part2(unsigned int a){ a << 1; printf("a=%#a\n", a);}在最后加一个1 | (10...
2018-03-20 14:53:51
574
原创 位操作异或 ‘^’ ,左移 ”<<“;’ 和 右移 "<<"的一些用法
一、^ 异或异或:^ 相同为0,不同为1。1、交换两个数,不用临时变量(1)普通写法void main(){int i=10;int j=20;i=i+jj=i-ji=i-jprintf("%d %d\n",i,j);}(2)使用^void main(){int i=10;int j=20;i=i^jj=i^ji=i^jprintf("%d %d\n",i,j);...
2018-03-20 14:36:39
305
原创 typedef
一、typedef 和 宏(define)的区别typedef是定义字符类型,而宏是字符转换。例:typedef int *pint;#define PINT INT*int main(){pint a,b;PINT c,d; //等同于int *c,d;所以后面的d=&e;为error。a=&e;b=&e;c=&e;d=&e...
2018-03-10 23:18:12
245
原创 指针的算数运算(2)
指针的减法和指针的加法一样,也是指针的本身去掉一个*号,再求sizeof()如:int *p=(int*)0x1010{ printf("%x\n",p-1);// printf("%x\n",p-2); printf("%x\n",(short*)p-2); printf("%x\n",(char*)p-2); printf("%x\n",(double*
2017-11-29 21:53:31
240
原创 野指针(悬挂指针)
指针指向非法的内存地址,没有指向有效地址,那么这个指针就是悬挂指针,也叫野指针。意为无法正常使用的指针。出现原因:1.在定义指针变量后没有对他进行初始化。如:#includeint main(){int *p;}2.指针释放后未置空指针p被free或delete后没有置为NULL(*p=NULL//空指针)。程序会依然认为p是一个合法的指针。所以释放
2017-11-27 18:07:24
569
原创 指针的算术运算(1) 加减运算
指针加法指针的加法计算时需要调整,调整的权重是指针本身去掉一个*号,再求sizeof();例如 int *p;p+1;加4字节;double *p;p+1;加8字节。知道了大体概念接下来做一道题加深一下理解#include int main(){int *p = (int *)10000;//定义地址为10000
2017-11-27 17:51:03
648
原创 根据等式如何得出进制
首先,我们先来看一道例题“假设在n进制下,下面的等式成立,567*456=150216,n的值是( )。A.9 B.10 C.12 D.18 ”首先(5n^2+6n+7)*(4n^2+5n+6)==n^5+5n^4+
2017-11-24 17:55:25
438
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人