rand()%100;表示获得一个100以内的随机数,其结果在[0-99]中
rand函数产生一个0到RAND_MAX的伪随机数,这里的RAND_MAX因不同的实现而异,但RAND_MAX至少为32767。
有些时候,用户需要获取一定更小范围中的一随机数,如得到一组100以内的随机数,就可以采用rand()%100这种方法,使得结果在100以内。
%是模运算,表示整除 右操作数 取余数
如果想得到【1,100】之间的随机数,则需要对上面的加法进行加工,写成:
(rand()%100)+1; //先得到0-99的随机数,然后加1,可得1-100区间内的数
y!=100这是一个逻辑表达式,结果只有两种:真、假。 意思是y不等于100,成立则为真(值为1),不成立则为假(值为0);while(条件)语句的条件为真,则执行循环,为假则循环终止。这和if()语句,do……while()语句的执行条件是一样的!如果y=99(即y不等于100成立),那么条件值为1,循环执行!
按你的意思100是一个地址是吧,那么(void *)100是将100这个地址强制转换为void*型的指针,一般用于赋给另一个指针,通过另一个指针再去访问100这个地址中的内容。
而int sum=100;(void *)sum,是先将100这个值赋给了sum,但sum的地址是多少,那就是只有操作系统知道了,后面的(void *)sum同样是sum所在的地址强制转换为void*型指针用于其它指针来访问sum所在地址的内容
!表示“非”,是一种逻辑运算。若a的真值为1,则!a为0;若a的真值为0,则!a为1。
拓展资料
逻辑运算是判断命题是否成立的运算,一共有三种,即逻辑非,逻辑与,逻辑或。逻辑表达式结果值为int型,命题成立值为1,否则为0。
值得注意的是,C语言中,在逻辑判断时,逻辑运算的操作数是0,被认为是假,操作数非0都认为是真,而不仅仅是1。三个逻辑运算符的真值表如下:
是取反的意思
比如100
100在二进制中是01100100
取反操作就是按位取反
结果是10011011
如果你定义的不是无符号的话
那么结果是个负数
~100就是-101
所以一般情况下取反加1就是原来那个数的负数
同理 ~(-100)+1就等于100
我来说两句