成都网站建设设计

将想法与焦点和您一起共享

《C语言你真的都掌握了吗》——数组分享(二)-创新互联

数组之二
  • 4、数组作为函数参数
      • 例子:冒泡排序
          • 冒泡排序的思路
          • 冒泡排序的代码
  • 5、数组名
  • 6、数组实例

前面给大家介绍了数组的一部分内容,今天和大家继续分享数组的更多知识点,希望对你能有帮助!

成都创新互联主营碧江网站建设的网络公司,主营网站建设方案,重庆APP开发,碧江h5重庆小程序开发搭建,碧江网站营销推广欢迎碧江等地区企业咨询4、数组作为函数参数 例子:冒泡排序

排序是我们平常代码中经常用到的一项功能。排序有很多种方法,如冒泡排序、选择排序、插入排序、快速排序等等。今天我们介绍一种排序的方法,叫做冒泡排序。

冒泡排序的思路

两两相邻元素进行比较,有可能的话需要交换,全部比较一次(称为一趟冒泡排序),就排好了最后一个数字的位置,一趟冒泡排序,搞定一个数字,一共有n个数字,就全部比较n-1次。

冒泡排序的代码
void Sort(int arr[], int sz)
{//趟数
    int i = 0;
    for (i = 0; i< sz - 1; i++)
    {//一趟冒泡排序
        int j = 0;
        for (j = 0; j< sz - 1 - i; j++)
        {if(arr[j] >arr[j + 1])
            {int tmp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = tmp;                            
            }        
        }        
    }            
}
int main()
{//整形数据
    int arr[] = {3,1,4,2,9,8,6,7,0,5 };
    int sz = sizeof(arr) / sizeof(arr[0]);
    //写一个函数,对数组进行排序
    Sort(arr, sz);
    int i = 0;
    for(i = 0; i< sz; i++)
    {printf("%d ", arr[i]);
    }
    return 0;
}
5、数组名

至此,我们引出了一个问题:数组名到底代表着什么呢?
在以下两种情况下,数组名表示首元素的地址,其他所有情况下,数组名都表示整个元素:
(1)sizeof(数组名)
(2)&数组名
例如:

#includeint main()
{int arr[10] = {0 };
    printf("%p\n", arr);
    return 0;
}
//此时数组名是个地址

#includeint main()
{int arr[10] = {0 };
    printf("%p\n", arr);
    printf("%p\n", &arr[0]);
    return 0;
}
//两个地址是一样的,说明数组名是数组首元素的地址

#includeint main()
{int arr[10] = {0 };
    printf("%p\n", arr);
    printf("%d\n" ,sizeof(arr));//这里不是4/8
    return 0;
}
//1、sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小,单位是字节
//2、&数组名,这里的数组名也表示整个数组,&取出的是数组的地址
//除了这两种情况,其他所有的数组名都是首元素的地址

值得一提的是,尽管数组名表示不同的含义(数组首元素地址和整个数组地址),但它们仍然可能相等。
比如:

#includeint main()
{int arr[10] = {0 };
    printf("%p\n", arr);//首元素地址
    printf("%p\n", &arr[0]);//首元素地址
    printf("%p\n", &arr);//整个数组的地址
    return 0;
}
//这里三个打印的地址是一样的
//原因:整个数组的地址也是指向第一个元素的
//区别:&arr+1表示的是跳过整个数组,arr+1和&arr[0]+1表示跳过数组的首元素
//相似的,指针+1跳过几个字节也是和指针类型有关的
6、数组实例

两个数组使用的例子,可以参考我之前的两篇博客:
三子棋小游戏
扫雷小游戏

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


当前名称:《C语言你真的都掌握了吗》——数组分享(二)-创新互联
转载注明:http://chengdu.cdxwcx.cn/article/cohodc.html