关系运算符与关系表达式
关系运算符的优先级大小:
<, >, <= ,>=这四个优先级相同,并且高于==和!=
它们的运算符大小比较:!(非)>算数运算符>关系运算符>&&和||>赋值运算符。
循环:
switch:括号里面必须为整数或者字符型
case:后面加上 常量:语句;break;
break表示跳出switch语句,要是没加就无条件执行后面的语句。
输入输出的两种安全方式
虽然有scanf、printf、getchar、putchar等输入输出方式,但是有些不安全,这两个输入输出方式是安全的!
输入函数fgets:
形式:char *fgets(char *s, int size , FILE *stream)
char *s : 就是存放数组名。
size:指的是能接收多少个字符。
FILE *stream -stdin
功能:从stream中读取字符,保存到S中,知道存现换行、读到文件结尾或者size-1个字符为止,最后会自动加上 ‘\0’ 作为字符串结尾符。
注意事项:换行符也能被保存进去,占一个位置,但是出现换行的时候就结束输入!!!
输出函数fputs:
形式:int fputs(const char *str,FILE *stream)
char *str 就是数组名
FILE *stream -stdout
功能:就是向屏幕输出字符串,并且字符串结尾不加结束符 ‘\0’
注意事项:不会默认加换行符
其他函数
strlen函数
形式:size-t strlen(const char*str)
char *str 就是数组名
功能:计算指定字符串长度,不包括结束符 ‘\0’
计算长度的原理,从首元素开始到 ‘\0’ 结束(也许字符串中间有结束符,但是它就不计算后面的了)
strcpy函数
形式:char *strcpy(char *dest,char *src);
char *dest -目标数组名。
char *src -源数组名。
功能:将src所指向的字符串拷贝至dest中, ‘\0’ 也会拷贝过来。
原理:从首元素开始,’\0’结束。
strncpy函数
形式:char *strncpy(char *dest,char *src, size_t n);
char *dest -目标数组名
char *src -源数组名
size_t n -前n个
功能:将src所指向的字符串的前n个字符串拷贝至dest中,是否拷贝 ‘\0’ 看指定的长度是否包含 ‘\0’ 决定。
strcmp函数
形式:int strcmp(const chars1,const char*s2);
char *s1 -数组名1
char *s2 -数组名2
功能:比较s1和s2的大小,实际上比较的是字符的ASCII
原理:按元素依次比较。
strcat函数
形式:char strcat(chardest,char*src);
char *dest -数组名1
char *src -数组名2
功能:将src的字符串连接到dest,’\0’也会追加上去。
strncat函数
形式:char strncat(chardest,char*src,size_t n);
char *dest -数组名1
char *src -数组名2
功能:将src的字符串前n个字符追加到dest尾部,’\0’也会追加上去。
return和exit()的区别
在主函数中作用一样,但是在子函数中,执行return就是结束子函数,执行exit()就是结束程序。
静态局部变量
函数中的局部变量在函数调用结束后仍然保持原始值。
注意:1、静态局部变量的初始化只会执行一次。
2、静态局部变量在函数调用前就已经分配内存空间了。
3、当离开{}时,静态变量的值不会自动释放,而是等到程序结束后才释放。
4、静态局部变量的作用域时当前{}内,离开此处{},则无法使用此变量。
5、如果静态局部变量不初始化,则系统则会默认初始化为0。
6、静态局部变量只能使用常量初始化。
普通局部变量和静态局部变量的区别
1、普通只有在执行到定义变量的语句时,才会分配内存。static局部变量在编译阶段变量已经分配内存。普通会在离开它所在的{}之后就会自动释放,static在程序执行完毕才释放。
2、从初始化角度看:普通不初始化,如果不初始化它的值就是随机值。static局部变量如果不初始化它的值就是0,static局部变量初始化语句只会执行一次,并且必须使用常量。
全局变量
在函数外面定义的变量被称为全局变量,被本文件以及其他文件所调用,不同文件的全局变量变量名不能一样。(全局变量的声明:当定义的全局变量在将要调用它的函数的后面要提前声明:extern int a;普通局部变量不需要声明)
普通全局变量和静态全局变量
1、static全局变量和普通全局变量作用域是不一样(文件作用域)
2、extern只使用普通全局变量。
3、普通全局变量所有文件都能使用,提前声明即可。
4、不同文件只能出现一个普通全局变量的定义。
5、static全局变量只能在本文件中使用,不能再其他文件中使用。
6、一个文件只能有一个static全局变量的定义,不同文件之间,就算名字一样,也是没有关系的两个变量。
全局函数和静态函数
1、一般默认为是全局函数,但是可以通过static声明函数为静态函数。
2、将函数定义为static以后,就意味着这个函数只能在本文件中使用(定义函数的文件),其他文件不能调用。
















