continue 结束本次循环进入下一次循环
break 可以从循环体内跳出循环体,提前结束本次循环
%p打印地址
数组a a表示数组首元素的地址 &a表示数组的地址
a+1下一个元素的地址 &a+1下一个数组
* 和 [] 是一个意思 如 a[0] 和*(a+0) a[1]和*(a+1)
a是首行地址 a+1 表示加1行
&a是数组的地址 &a+1 表示加一个数组
a[0] 表示数组首元素的地址 a[0]+1 表示加一个元素
数组a[3][4]={0} 下列哪个不能表示a[1][1]
*(a[1]+1) *(&a[1][1]) (*(a+1))[1] *(a+5) 第四个不能
printf("%d\n", sizeof(a)/sizeof(a[0])); 可以用来求数组元素个数
strlen(str)求字符串长度 需要头文件#include<string.h>
strcat函数
其一般形式为:strcat(字符数组1,字符数组2)
Strcat的作用是连接两个字符数组中的字符串,把字符串2接到字符串1的后面,结果放在字符数组1中,函数调用后得到一个函数值——字符数组1的地址。
strncat(字符数组1,字符数组2,n)
strcpy函数 strncpy
其一般形式为:strcpy(字符数组1,字符串2) strncpy(字符数组1,字符数组2,n)
strcpy是“字符串复制函数”。 将n个字符复制
作用:是将字符串2复制到字符数组1中去。
注意:字符数组1的长度不应小于字符数组2的长度
strcmp函数
其一般形式为:strcmp(字符串1,字符串2)
strcmp的作用是比较字符串1和字符串2。
函数
函数类型 函数名(形式参数类型说明表)
{
声明部分
执行部分
}
形式参数:定义函数时函数名后面括号中的变量名
实际参数:调用函数时函数名后面括号中的表达式
值传递方式方式:
函数调用时,为形参分配单元,并将实参的值复制到形参中;
调用结束,形参单元被释放,实参单元仍保留并维持原值;
特点:
形参与实参占用不同的内存单元; 单向传递
地址传递方式:
函数调用时,将数据的存储地址作为参数传递给形参
特点:形参与实参占用同样的存储单元;
“双向”传递;
实参和形参必须是地址常量或变量
调用函数
1、通过函数名找到函数的地址
2、给形参分配空间
3、传值
4、执行函数体
5、返回
6、释放空间
栈空间:
1、数据段:主要存放全局变量、静态数据
2、代码段: 写的代码和常量
3、栈空间:局部变量,使用完会释放
4、堆空间
static修饰全局变量:改变全局变量的作用域
修饰函数:改变函数的作用域,函数只能在本文件中被调用,不能再其他文件中被调用
修饰局部变量:改变变量的生命周期,直到程序运行结束才被释放