数组和函数结合

1.打印数组中的元素

#include <stdio.h>
#include <stdlib.h>


void   arrayprint(int datas[3])//数据定义为3个
{

      int   i;
      
      for(i=0;i<3;i++)
      {
            printf("%d ",datas[i]);      
      }
      
      putchar('\n');   //putchar  输出一个字符,  getchar获取一个字符的输入,
      //但是用在过滤回车
}


int main()
{
	    
      int   array[3]={11,22,38};
      
    //1.数组和函数结合,数组名当作实际参数
    
    arrayprint(array);
    
	system("pause");
	return 0;
}

运行结果:
在这里插入图片描述

2.问:如何计算数组中元素的个数(数组的总大小/一个类型的大小)
int a[3]
一个整型数占用空间4个字节,3个占用空间12个字节

char b[3]
一个char 型占用空间1个字节,三个占用空间3个字节

两个数组有什么相通点和不同点
相同点:数组元素个数都为3个
不同的:(1)数组类型不同(2)数组的内存大小不同

3.实现计算数组的大小

#include <stdio.h>
#include <stdlib.h>

int main()
{

      int   a[3];
      char  b[3];
      
      printf("a数组的大小是:%d\n",sizeof(a));
      printf("b数组的大小是:%d\n",sizeof(b));  
      printf("一个整型的空间是:%d\n",sizeof(int));
      printf("一个字符型的空间是:%d\n",sizeof(char));
      
      system("pause");
      return 0;
}

运行结果:
在这里插入图片描述

4.计算数组中元素的个数

#include <stdio.h>
#include <stdlib.h>


int main()
{

      int   a[3];
      char  b[3];

     printf("a数组有%d个元素\n",sizeof(a)/sizeof(a[0]));
     printf("b数组有%d个元素\n",sizeof(b)/sizeof(b[0]));
	
	 system("pause");
	 return 0;
}

运行结果:
在这里插入图片描述
5.请输出数组a中有多少个元素
sizeof(a)/ sizeof(a[0])

(1)

#include <stdio.h>
#include <stdlib.h>

void   arrayprint(int datas[])

{
  printf("数组的大小是:%d\n",sizeof(datas));

  printf("一个int数据大小是:%d\n",sizeof(int));

  printf("函数调用中,datas数组元素的个数为 %d个\n",sizeof(datas)/sizeof(datas[0]));
}

int main()
{
	    
    int   array[3]={11,22,38};
    
    printf("数组的大小是:%d\n",sizeof(array));
    printf("array 数组元素的个数为%d\n",sizeof(array)/sizeof(array[0]));
      
    arrayprint(array); 
 
    system("pause");
	return 0;
}

(2)

#include <stdio.h>
#include <stdlib.h>


void   arrayprint(int datas[],int cnt)
{
  
  printf("数组的大小是:%d\n",sizeof(datas));
  printf("一个int数据大小是:%d\n",sizeof(int));
  printf("函数调用中,datas数组元素的个数为 %d个\n",sizeof(datas)/sizeof(datas[0]));

      int   i;
      for(i=0;i<cnt;i++)
      {
            printf("%d ",datas[i]);      
      }
      
      putchar('\n');   
      //putchar  输出一个字符,  getchar获取一个字符的输入,但是用在过滤回车

   int main()
{
	    
    int   array[3]={11,22,38};
    
    arrayprint(array,sizeof(array)/sizeof(array[0]));   
}

    system("pause");
	return 0;
}

运行结果:
在这里插入图片描述

注:
void arrayprint(int datas[ ])
形式参数中,虽然写的是一个数组的样子,中括号中数组的大小是无效的,这里不管中括号中写多少,都不能代表形参数组有多大。这里的中括号的作用仅仅用来表示,该参数是一个地址,在windos下,用4个字节表示地址,在linux64为中用8个字节表示。

——@上官可编程

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值