变量
-
变量存储形式:静态存储(程序运行时分配固定存储空间),动态存储(程序运行时根据需要动态分配存储空间)
-
存储修饰符:自动变量(auto),静态变量(static),寄存器变量(register),外部变量(extern)
-
auto变量:存储在动态存储区,每次执行该变量,都会产生一个新变量,并且重新进行初始化。auto可以省略,不特别指定的情况下,局部变量的存储方式默认是auto型
-
static变量:存储在静态存储区,保持不变,初始化只在第一次执行时起作用,随后的运行过程中变量将保持语句块上一次执行的值
-
register变量:频繁访问的局部变量存放在计算机的硬件寄存器中,而不是内存中。可以提高程序的运行速度。由于CPU的寄存器数量有限,编译器可以忽略register对变量的修饰,用户无法获取寄存器变量的地址
-
extern变量:使用在其他程序文件中定义过的变量
常用的数据输入、输出函数 -
字符的输出函数:putchar(int ch) ch可是字符型变量、整型变量、常量、转义字符
-
字符的输入函数:getchar():从终端输入一个字符。没有参数
-
字符串的输出函数: puts(char *str) str字符指针变量,接受要输出的字符串,输出字符串后,并自动换行(printf函数需要添加“\n”换行符)。会在字符串中判断“\0”结束符,遇到结束符,后面的字符不再输出,并且自动换行
-
字符串的输入函数 : char* gets(char* str ) str字符指针变量,存储用户输入的字符串,输入的最后换行符转换成终止符“\0”
-
格式输入\输出函数:scanf( 格式控制,地址列表) \printf( 格式控制,输出列表)
选择结构程序设计 -
if else
-
switch case
-
循环控制
-
while
-
do while:至少执行一次循环
-
for
-
转移语句
-
goto:跳转到指定标识符
-
break:中断当前循环,跳出循环体
-
continue:中断本次循环,继续下一次条件判断
-
函数
-
函数分类:
-
内部函数(静态函数):只能被所在源文件使用,static 返回值类型 函数名(参数)
-
外部函数:可以被其他文件调用的函数, extern 返回值类型,函数名(参数)
-
若函数未指定内部函数还是外部函数,默认外部函数
-
变量作用域:
-
局部变量:函数内定义的变量,且内层同名变量覆盖外一层的同名变量
-
全局变量:在所有函数外部声明的变量,可以在程序的任何位置访问,不属于某个函数,属于整个源文件。如果外部文件要访问,需要用EXTERN关键字进行引用修饰
-
数学函数:abs(绝对值)、labs(长整型的绝对值)、fabs(实型数的绝对值)、sin(正弦)、cos(余弦)、tan(正切)
-
字符函数:isalpha(检测某个字符是否字母,如果是返回非0值,不是返回0)、isdigit(检测某个字符是否数字,若是返回非0值,不是返回0)、isalnum(检测某个字符是否字母或数字,若是返回非0,不是返回0)
-
字符串函数:
-
字符串复制:strcpy(字符串1,字符串2) 把字符串2复制到字符串1,字符串的结束标志“\0”也一同复制
-
字符串连接:strcat (字符串1,字符串2) ,把字符串2连接到字符串1的末尾,称为一个新字符串,并删除字符串1中原有的串结束标志“\0”
-
字符串比较:strcmp(字符串1,字符串2),将一个字符串1与字符串2从首字母开始,按ASCII码的顺序逐个比较。字符串1=字符串2,返回0,字符串1>字符串2,返回正数,字符串1<字符串2,返回负数
-
字符串的小写字母转换成大写:strupr(字符数组名)
-
字符串的大写字母转换成小写:strlwr(字符数组名)
-
字符串长度函数:strlen(字符数组名)计算数组中存放的字符串的实际长度,不包含结束标志“\0”
指针 -
&:取址运算符,获取变量所在内存的地址
-
*:指针运算符,返回指定地址内保存的变量值
-
*&a:表示获取a的变量
-
&*a:表示获取a的地址
-
指针的自增与自减不同于普通变量,而是按它所指的数据类型的直接长度进行增减
-
数组与指针
-
数组名是数组在内存中的首地址 数组 a[5] a+n表示数组元素的地址。 *(a+n)表示数组元素
-
*(a[m]+n) :二维数组第m+1行,第n+1列的元素
-
字符串与指针
-
指针数组:一个数组,其元素均为指针类型数据
-
指向指针的指针: 类型标识符 **指针变量名
int **p:定义个指针变量P,它指向另一个指针变量,该指真变量又指向另一个整型变量。*运算符自右向左运算
返回指针值的函数
- 函数指针:函数在编译时时会被分配一个入口地址,该入口地址称为函数的指针
- 类型名 *函数名(参数列表)