使用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语句,否则按普通函数处理,内联函数体不能包含静态变量和数组说明以及递归调用。