test.c 第一回测试
*数组名(arr)单独放在sizeof内部时代表整个数组,在取地址数组名(&arr)时代表整个数组。除此之外都代表数组首元素(arr[0])地址。
*sizeof的单位是字节。
*在32位平台上,地址是4个字节。
*arr一旦参与运算,就不表示整个数组 eg. sizeof(arr+0)=4 。
#include<stdio.h>
int main()
{
int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int max = arr[0];
int i = 0;
for (i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
//i是下标
//i < sizeof(arr) / sizeof(arr[0]),这样可以动态改变i的条件
//sizeof(arr)=40 =4(int)*10
//sizeof内部单独放一个数组名表示整个数组的大小
//sizeof(arr[0])=4 数组首元素地址
//arr[0]是数组首元素
//32位平台上,地址是4个字节
{
if (max < arr[i])
{
max = arr[i];
}
}
printf("max=%d\n", max);
system("pause");
return 0;
}
运行界面
test.c 第二回测试
#include<stdio.h>
int main()
{
int arr[] = {-1,-2,-3,-4,-5,-6,-7,-8,-9,-10};
int max = arr[0];
int i = 0;
for (i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
{
if (max < arr[i])
{
max = arr[i];
}
}
printf("max=%d\n", max);
system("pause");
return 0;
}
运行界面
test.c 第三回测试
#include<stdio.h>
int main()
{
int arr[] = {-1,-2,3-4,-5,6,-7,-8,9,-10};
int max = arr[0];
int i = 0;
for (i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
{
if (max < arr[i])
{
max = arr[i];
}
}
printf("max=%d\n", max);
system("pause");
return 0;
}
运行界面
提醒:要多测几组类型不同的数(正数、负数)