プロのプログラマの方からすれば、何をいまさらな話。
先日よそ様のコードを見ていたら、以下のようなコードがあった。
int array[10] = {0};
え?なに?と思ったのだが、これで配列arrayの全要素が0で初期化される。
頭のいくつかだけ規定値で初期化して、残りを0に初期化したい場合は、
int array[10] = {0, 1, 2};
でOK。
これで
int array[10] = {0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0};
としたのと同じになる。
ただし、
int array[10] = {1};
としても、全要素が1で初期化されるわけではないから、注意。
これは実際には、
int array[10] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
としたのと同じになる。
#include <stdio.h> #define ARRAY_SIZE 10 int main(int argc, char* argv[]) { int counter; int array[ARRAY_SIZE] = { 0, 1, 2, 1}; // for (counter = 0; counter < ARRAY_SIZE; counter++) { printf("%d, ", *(array + counter)); } printf("\n"); printf("Completed \n"); getchar(); return 0; }