==标记==
//下面记录一下重要知识点
- 库函数:字符串拷贝strcpy(指针指向目的地的数组,源头),strlen()等处 
 理字符串长度的函数,需要调用#include<string.h>的头文件
 strlen()函数:求字符串长度-“123”打印的结果是3不包含\0
 即strlen函数求得是\0之间的字符个数
 2.void memset:内存设置-(void s, int ch, size_t n)
 函数解释:将s中当前位置后面的n个字节,用 ch 替换并返回s
 3.swap(a,b)和swap(&a,&b):传值调用和传址调用(真正实现函数内部和外
 部交换)
 4.printf("%d\n",printf("%d",printf("%d",43)):printf函数的返回值是元素
 的个数,此语句打印的结果是4321
 5.函数的声明、调用和定义要理解,函数的递归、栈溢出
 6.数组的几个易错点:printf("%d\n",sizeof(arr));//打印的是arr中的元素数
 printf("%d\n",sizeof(arr[0])); //打印的是第一个元素
 举例:int arr1[] = "abc";
 int arr2[] = {'a','b','c'};
 printf("%d\n",strlen(arr1));//结果是3,arr2是随机值
 printf("%d\n",sizeof(arr1));//结果是4,arr2是3
 关于数组的取地址:
 printf("%p\n",arr);
 printf("%p\n",*arr);
 printf("%p\n",arr[0]); //这三种都是一样的
 printf("%p\n",&arr);//取的是数组的地址
 printf("%p\n",&arr+1);//会比数组地址大一个轮回
 ```//冒泡排序
 #include<stdio.h>
 void bubble_sort(int arr[],int sz)
 {
 int a = 0;
 int j = 0;
 for(a=0;a<sz;a++)
 {
 int flag = 1;
 for(j=0;j<sz-a-1;j++)
 {
 int tmp = 0;
 if(arr[j]>arr[j+1])
 tmp = arr[j];
 arr[j] = arr[j+1];
 arr[j+1] = tmp;
 flag = 0;
 }
 if(flag == 1)
 {
 break;
 }
 }
 }
 int main()
 {
 int arr[] = {9,8,7,6,5,4,3,2,1};
 int i = 0;
 int sz = sizeof(arr)/sizeof(arr[0]);
 bubble_sort(arr,sz);
 for(i=0;i<sz;i++)
 {
 printf("%d ",arr[i]);
 }
 return 0;
 }//总结一下:别忘记定义tmp,不要再运算中定义冒泡函数的定义bubble_sort()









