C言語取得配列サイズ、配列遍歴

775 ワード

//    
void pp(int * ary, int n) {
	for(int i = 0; i < n; i++) {
		*ary += n;
		printf("%d ", *(ary++));
	}
	printf("
"); } // 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("
"); } 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内の要素の個数を得る
配列サイズを取得するには、宣言された関数内で取得する必要があります.サブ関数では取得できません.