goto语句某些场合下还是用得到的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过程,例如一次跳出两层或多层循环。(再跳也只能在一个函数范围跳)
函数:
包括:函数是什么、库函数、自定义函数、函数参数、函数调用、函数的嵌套调用和链式访问、函数的声明和定义、函数递归
strcpy:复制字符串
将源指向的 C 字符串复制到目标指向的数组中,包括终止 null 字符(并在该点停止)。
为避免溢出,目标指向的数组的大小应足够长,以包含与源相同的 C 字符串(包括终止 null 字符),并且不应在内存中与源重叠。
strcpy(arr1,arr2)---把arr2中的内容复制到arr1中去
例:char arr1[20] = { 0 };
char arr2[] = "abc";
strcpy(arr1, arr2);(将arr2中的abc复制到arr1中去)
开始执行Debug(调试版本)和Releas(发布版本)
memory -记忆 - 内存
memset -内存设置
memset:填充内存块void * memset ( void * ptr, int value, size_t num );
将 ptr 指向的内存块的第一个字节数设置为指定值(解释为无符号字符)。
例:char arr[] = "hello bit";
memset(arr, 'x', 5);
printf("%s\n", arr); //将数组arr内前5个字节的内容替换为x
库函数一般格式
自定义函数和库函数一样,有函数名,返回值类型和函数参数。但是不一样的是这些都是我们自己来设计。有很大的发挥空间。
//ret_type fun_name(para1, *)
//{
// statement;//语句项
//}
//ret_type 返回值类型
//fun_name 函数名
//para1 函数参数
练习://写一个函数,可以找出两个整数中的最大值
int get_max(int x, int y)//前面加int是为了明确告知函数返回整形的值
{
int z = 0;
if (x > y)
z = x;
else
z = y;
return z;//返回z-返回较大值
}
int main()
{
int a = 10;
int b = 20;
//函数的调用
int max = get_max(a,b);
printf("max = %d\n", max);
return 0;
}
//写一个函数,可以交换两个整形变量的内容
//函数返回类型的地方写成void,表示这个函数不返回任何值,也不需要返回
//void Swap(intx, int y)//出问题了,改变x,y并不能改变a,b//应该输入a,b的地址
void Swap(int*pa,int*pb)
{
int z = 0;
z = *pa;
*pa = *pb;
*pb = z;
}
int main()
{
int a = 10;
int b = 20;
//写一个函数——交换2个整型变量的值
printf("交换前: a=%d b=%d\n", a, b);
Swap(&a, &b);
printf("交换后: a=%d b=%d\n", a, b);
return 0;
}