首页 > 其他分享 >数组(2)

数组(2)

时间:2022-12-05 17:35:27浏览次数:38  
标签:arr int 数组名 数组 printf sizeof

数组作为函数参数

往往我们在写代码时,会将数组作为参数传给函数

​实现一个冒泡函数将一个整形数组排序

#include <stdio.h>

void bubble_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[]={9,8,7,6,5,4,3,2,1,0};
int i=0;
int sz=sizeof(arr)/sizeof(arr[0]);
//对arr进行排序,排成升序
//arr是数组,我们对数组arr进行传参,实际上传递过去的是数组arr首元素的地址 &arr[0]
bubble_sort(arr,sz);//冒泡排序函数
for(i=0;i<sz;i++)
{
printf("%d ",arr[i]);
}
return 0;
}
//改进
#include <stdio.h>

void bubble_sort(int arr[],int sz)
{
//确定冒泡函数的趟数
int i=0;
for(i=0;i<sz-1;i++)
{
//每一趟冒泡排序
int j=0;
int flag=1;//假设这一趟排序数据已经有序
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;
flag=0;//本趟排序的数据其实不完全有序
}
}
if(flag==1)
break;
}
}
int main()
{
int arr[]={9,8,7,6,5,4,3,2,1,0};
int i=0;
int sz=sizeof(arr)/sizeof(arr[0]);
//对arr进行排序,排成升序
//arr是数组,我们对数组arr进行传参,实际上传递过去的是数组arr首元素的地址 &arr[0]
bubble_sort(arr,sz);//冒泡排序函数
for(i=0;i<sz;i++)
{
printf("%d ",arr[i]);
}
return 0;
}



​数组名是什么?

数组名是首元素的地址(有两个例外)

1.sizeof(数组名) -数组名表示整个数组,sizeof(数组名)计算的是整个数组的大小,单位是字节

2.&数组名,数组名代表整个数组,&数组名,取出的是整个数组的地址

#include<stdio.h>
int main()
{
int arr[]={1,2,3,4,5,6,7};
printf("%p\n", arr);
printf("%p\n", arr+1);
printf("%p\n", &arr[0]);
printf("%p\n", &arr[0]+1);
printf("%p\n", &arr);
printf("%p\n", &arr+1);
//int sz=sizeof(arr)/sizeof(arr[0]);
/*printf("%p\n", arr);
printf("%p\n", &arr[0]);
printf("%d\n", *arr);*/

}



标签:arr,int,数组名,数组,printf,sizeof
From: https://blog.51cto.com/u_15848198/5913106

相关文章

  • JS获取数组中元素的最大值
    方法1:Math.max.apply()Math.max()方法默认接收多个参数并返回最大值,而apply()方法接收一个数组,将数组中的每一项作为参数传给调用函数,搭配使用可以得到最大值。const......
  • 数组循环的时候判断对应的订单id是否一致,一致的话重新赋值
    $param_data['num']=1000;$list=(new\app\common\model\Order())->get_user_list($param_data);$list=$list->toArray();$list_data=$list['data'];$not_read_msg......
  • 使用list和数组保存数据的差别
    在上位机开发曲线供能时遇到一个疑惑的问题,但又感觉这个问题太基础,想求证一下。需求:一共有1000个模拟量数据,每个数据记录600个点作为一组数据曲线,那么这1000个模拟量需要......
  • JAVASCRIPT数组小结
    ​数组是值的有序集合。每个值叫做一个元素,而每个元素在数组中有一个位置,以数字表示,称为索引。JavaScript数组是无类型的,数组元素可以是任意类型,并......
  • js多个(N)个数组的的元素组合排序算法,多维数组的排列组合或多个数组之间的排列组合
    现在有一批手机,其中颜色有['白色','黑色','金色','粉红色'];内存大小有['16G','32G','64G','128G'],版本有['移动','联通','电信'],要求写一个算法,实现[['白色','16G','移动'......
  • 数组排序,自己内部会调整,数组也是引用类型
    Java的基本数据类型有8种,分别是:byte(位)、short(短整数)、int(整数)、long(长整数)、float(单精度)、double(双精度)、char(字符)和boolean(布尔值)。数组是引用类型 int[] arr2 = {......
  • React中的函数组件详解
    转载来自(47条消息)React中的函数组件详解_『荼』的博客-CSDN博客_react函数组件1.创建方式//写法一constHello=(props)=>{return<div>{props......
  • 力扣 leetcode 209. 长度最小的子数组
    问题描述给定一个含有n个正整数的数组和一个正整数target。找出该数组中满足其和≥target的长度最小的连续子数组[numsl,numsl+1,...,numsr-1,numsr],并返......
  • 如何使用.join()方法用指定分隔符分隔数组为字符串?
    Array.prototype.join()方法.join()方法把数组中的所有元素连接成一个字符串并返回这个字符串。用逗号或指定的分隔符字符串分隔。如果数组只有一个元素,那么将返回该元素而......
  • 数组
    数组数组概述数组是相同类型数据的有序集合。数组描述的是相同类型的若干数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个数组元素,每个数组元素可......