数组获取元素个数:
sizeof(ids)/sizeof(int)
需要根据字节的长度来计算个数,当然在java中直接.length来获取,c语言就是比较麻烦,毕竟java是封装语言,将繁杂的步骤分装好方便调用了.
//用随机数生成一个数组,写一个函数查找最小的值,并返回最小数的地址,在主函数中打印出来
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
#include <math.h>
#include <time.h>
//案例:用随机数生成一个数组,写一个函数查找最小的值,并返回最小数的地址,在主函数中打印出来
int* getMinPointer(int ids[]){
int i = 0;
int* p = &ids[0];
for ( i = 0; i < sizeof(ids)/sizeof(int); i++)
{
if (*p>ids[i]){
p = &ids[i];
}
}
return p;
}
void main(){
int ids[10];
int i = 0;
//初始化随机数发生器,设置种子,种子不一样,随机数才不一样
//当前时间作为种子 有符号 int -xx - > +xx
srand((unsigned)time(NULL));
for ( i = 0; i < sizeof(ids)/sizeof(int); i++)
{
ids[i] = rand() % 100;
printf("数组:%d\n", ids[i]);
}
int* p = getMinPointer(ids);
printf("获取最小地址:%#x,获取最小:%d\n", p, *p);
getchar();
}
编译结果:
//初始化随机数发生器,设置种子,种子不一样,随机数才不一样
srand((unsigned)time(NULL)); //没有这句,则编译的结果就和上面的一样
vs2013提示键:tab