C语言从新学习——基础杂类(2)

一、C语言符号优先级


二、<ctype.h>头文件经常使用函数:html

<ctype.h>头文件是很经常使用的一个头文件,其用来处理char类型数据,经常使用的有
tolower()转化为小写,toupper()转化为大写,isalpha()判断是否为字母,还有其余以下表


三、位操做符web

其中~是一位运算符,其余的为两位运算符,计算位数为。
计算方法:&, |, ^按位列出,向高补齐,符号位也算在位计算中
~取反减一, << 乘以2,右补0,超出范围后归0, >>除以2,舍小数位,左补符号位,正数直到0,负数到-1。


四、随机数ide

随机数在<stdlib.h>头文件中声明,用函数rand()进行实现,值在0到RAND_MAX之间。
rand()须要一个种子来产生不一样的序列,对于同一个种子所产生的序列是相同的,咱们能够用srand()函数来设置种子值,种子的默认值是1,但种子值是由本身设定的话彷佛很难达到随机数的效果,因此咱们通常用time函数。time函数在<time.h>中声明,time函数通常须要一个参数,这里咱们用NULL就好了。
随机数通常使用:
srand(time(NULL));
int chosen = rand();
RAND_MAX的值至关的大,一般是int的最大值,因此咱们通常用%对齐进行范围限定。
在[a,b)范围内的随机数:
rand()%(b-a)+a;
随机数机制:
随机数实际上就是按照必定规律的变更数字,其大体声明以下:
static unsigned long next = 1; 
/* RAND_MAX assumed to be 32767 */
int rand(void) { 
    next = next * 1103515245 + 12345; 
return((unsigned)(next/65536) % 32768); 
} 
void srand(unsigned seed) { 
    next = seed; 
}


不一样的编译器可能数字不同,但实现效果是相同的。


五、有关for循环函数

for(double a=0; a!=2; a+=0.2)这个循环可能会产生死循环,由于0.2没有二进制的准确表示,因此a不可能获得精确的2,若是改成0.25则可使循环停下。


6有关gotourl

goto语句并不经常使用,但其的方便性能够超越任何的选择循环语句,可是它也会使得程序变得更加复杂。咱们通常运用其来跳跃多重循环,或者进行函数跨越,提升程序的灵活性。spa


七、while和do-while3d

while是先判断再执行,do-while是先执行再判断,while能够一次循环都不执行,而do-while至少执行一次循环,要注意do-while最后要加分号结束。htm


八、时间函数
时间函数主要包含在<time.h>之中,经常使用的有如下几个函数:
time(NULL)是返回1970年至今的毫秒数,因此重叠的概率很小,通常用它做为随机数种子,但他返回的类型为time_t,因此须要用(unsigned int)进行强制转化。
clock()返回从程序启动到如今的时间,这个能够记录程序所容许的时间,若是须要每隔一段时间作某事,能够用一个变量now记录上一个clock(),用循环
while(clock() - now < CLOCKS_PER_SEC);来处理间隔,固然这种作法很占CPU啦,不提倡使用。


九、fflush()函数blog

fflush函数的意思是清除缓冲区的内容,其声明在stdio.h头文件中,若是你输入一串的数据,则这些数据就会放在一个名叫stdin的标准输入缓冲区中,直到你按回车键为止。用fflush函数就能很好的把缓冲区内的东西清除掉,以避免影响后面的输入输出。使用方法fflush(stdin)。


十、输入指定符ip

输入指定符通常由%进行标准格式化,其形式通常以下:

还有相似于%[]和%[^]的指定符,%[]只能读取[]所包含的字符,而%[^]为当读取到某些字符时中止。
例:%[abcde],则只能读取abcde,遇到其余符号则会退出输入,其后面的内容不会存入后面的符号中。
好比输入akjdba,则输出只有a。
若是为%[^abcde],则一旦输入abcde中的一个则会退出,返回前面所获得的字符串。
好比输入gjsdgjfa,则只能获得gjs。
十一、输出指定符
输出指定符通常也由%进行标准格式化,其形式通常以下:
相关文章
相关标签/搜索