C语言 获取数组大小,遍历数组

版权声明:本文为匆忙拥挤repeat(stone)原创文章,转载请注明出处 —— http://blog.csdn.net/jjwwmlp456 https://blog.csdn.net/jjwwmlp456/article/details/89183070
//指针遍历
void pp(int * ary, int n) {
	for(int i = 0; i < n; i++) {
		*ary += n;
		printf("%d ", *(ary++));
	}
	printf("\n");
}

//一般遍历
void pp2(int ary[], int n) {
//	int n = sizeof(ary) / sizeof(int);//子函数中无法正确获取数组大小
	for(int i = 0; i < n; i++) {
		ary[i] += n;
		printf("%d ", ary[i]);
	}
	printf("\n");
}

int main(int argc, char *argv[]) {
	int ary[] = {1,2,3,88,99};
//	pp(ary, sizeof(ary) / sizeof(ary[0])); 
	pp(ary, sizeof(ary) / sizeof(int));
}

sizeof是运算符,返回 unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。
它的功能是:获得保证能容纳实现所建立的最大对象的字节大小

sizeof(ary) / sizeof(int) <==> sizeof(ary) / sizeof(ary[0]) ; 得到 ary 内的元素的个数

获取数组大小,必须在声明的函数内获取;不能在子函数中获取。

猜你喜欢

转载自blog.csdn.net/jjwwmlp456/article/details/89183070