1、C语言符号优先级C语言重新学习——基础杂类(2)_C语言


2、<ctype.h>头文件常用函数:

<ctype.h>头文件是很常用的一个头文件,其用来处理char类型数据,常用的有
tolower()转化为小写,toupper()转化为大写,isalpha()判断是否为字母,还有其他如下表
C语言重新学习——基础杂类(2)_C语言_03


3、位操作符

C语言重新学习——基础杂类(2)_C语言_05
其中~是一位运算符,其他的为两位运算符,计算位数为。
计算方法:&, |, ^按位列出,向高补齐,符号位也算在位计算中
~取反减一, << 乘以2,右补0,超出范围后归0, >>除以2,舍小数位,左补符号位,正数直到0,负数到-1。


4、随机数

随机数在<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; 
}


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


5、有关for循环

for(double a=0; a!=2; a+=0.2)这个循环可能会产生死循环,因为0.2没有二进制的准确表示,所以a不可能得到精确的2,如果改为0.25则可以使循环停下。


6有关goto

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


7、while和do-while

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


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


9、fflush()函数

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


10、输入指定符

输入指定符一般由%进行标准格式化,其形式一般如下:

C语言重新学习——基础杂类(2)_C语言_06

C语言重新学习——基础杂类(2)_C语言_08
还有类似于%[]和%[^]的指定符,%[]只能读取[]所包含的字符,而%[^]为当读取到某些字符时停止。
例:%[abcde],则只能读取abcde,遇到其他符号则会退出输入,其后面的内容不会存入后面的符号中。
比如输入akjdba,则输出只有a。
如果为%[^abcde],则一旦输入abcde中的一个则会退出,返回前面所得到的字符串。
比如输入gjsdgjfa,则只能得到gjs。
11、输出指定符
输出指定符一般也由%进行标准格式化,其形式一般如下:
C语言重新学习——基础杂类(2)_C语言_11
C语言重新学习——基础杂类(2)_C语言_13
C语言重新学习——基础杂类(2)_C语言_14