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个字节表示。
——@上官可编程