看别人文章归纳的一点C/C++小细节

使用rand()函数可以生成随机数,不过,它生成的随机数是一种伪随机数。因为重复执行程序的话,得到的随机数是一样。生成随机数的函数是通过一个固定的数值来计算随机数的,可以通过srand()函数来指定这个数值,这样生成的随机数就是真正意义上的随机数了。使用时间当作srand()函数的值生成的随机数就显得更加随机了。

部分程序:

#include<time.h>

srand(time(NULL));
iVal = rand()% 10;

 

scanf 函数是有返回值的,它的返回值可以分成三种情况
  1) 正整数,表示正确输入参数的个数。例如执行 scanf("%d %d",&a, &b);
      如果用户输入"3 4",可以正确输入,返回2(正确输入了两个变量);
      如果用户输入"3,4",可以正确输入a,无法输入b,返回1(正确输入了一个变量)。
  2) 0,表示用户的输入不匹配,无法正确输入任何值。如上例,用户如果输入",34",返回0。
  3) EOF,这是在stdio.h里面定义的常量(通常值为-1),表示输入流已经结束。在Windows下,用户按下CTRL+Z(会看到一个^Z字符)再按下回车(可能需要重复2次),就表示输入结束;Linux/Unix下使用CTRL+D表示输入结束。
所以可以使用下面的代码来处理输入:
while (scanf("%s %c %c", str, &oldchar,&newchar) == 3) 
{
    ; //处理
}

if(0 == scanf("%d",&base))
{
printf("Input number for selecting is not right \n");
return FALSE;
}
而函数printf的返回值是输出的字符数,例如,printf("1234")的返回值是4,而printf("1234\n")的返回值是5。

 

Struct boy { 
Int num; 

Char *str; 

}*q; 
q=()malloc(sizeof(struct)); 

q->str=malloc(10);  
Free(q->str);  先释放成员,再释放结构体 Free(q)

 

int i;
for(i=1;i++<4;);
printf("%d\n",i);

i输出结果为5,i=4时判定那一步i++<4要走完

 

char *strcpy(char *strDest, const char *strSrc)
{
    if ( strDest == NULL || strSrc == NULL)
        return NULL ;
    if ( strDest == strSrc)
        return strDest ;
    char *tempptr = strDest ;
    while( (*strDest++ = *strSrc++) != ‘\0’);
        return tempptr ;
}

 

内联函数体内不允许用循环和switch语句,否则按普通函数处理,内联函数体不能包含静态变量和数组说明以及递归调用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值