==标记== //下面记录一下重要知识点

  1. 库函数:字符串拷贝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()