#include int main() { int i; int array[] = {11,22,33,44}; float f_array[] = {0.1,0.2,0.3,0.4}; /* アドレスは4ずつ増える */ double d_array[] = {1e+4, 2e+3, 3e+2, 4e+1}; /* アドレスは8ずつ増える */ char c_array[] = {'A','B','C','D'}; /* アドレスは1ずつ増える */ char c_2d_array[][9] = {"ab","c","defg","hij"}; /* アドレスは9ずつ増える */ char* str_array[] = {"ab","c","defg","hij"}; /* アドレスは8ずつ増える */ printf( "array:\n" ); for(i = 0 ; i < 4 ; i++) printf( "%d %p %d\n", i, &array[i], array[i] ); /* サンプル */ printf( "%p\n\n", array ); printf( "f_array:\n" ); for(i = 0 ; i < 4 ; i++) printf( "%d %p %f\n", i, &f_array[i], f_array[i] ); /* float型 */ printf( "%p\n\n", f_array ); printf( "d_array:\n" ); for(i = 0 ; i < 4 ; i++) printf( "%d %p %e\n", i, &d_array[i], d_array[i] ); /* double型 */ /* %e の代わりに%f, %gでも構わない */ printf( "%p\n\n", d_array ); printf( "c_array:\n" ); for(i = 0 ; i < 4 ; i++) printf( "%d %p %c\n", i, &c_array[i], c_array[i] ); /* char型 */ printf( "%p\n\n", c_array ); printf( "c_2d_array:\n" ); for(i = 0 ; i < 4 ; i++) printf( "%d %p %s\n", i, &c_2d_array[i], c_2d_array[i] ); /* 2次元配列 */ printf( "%p\n\n", c_2d_array ); printf( "str_array:\n" ); for(i = 0 ; i < 4 ; i++) printf( "%d %p %s\n", i, &str_array[i], str_array[i] ); /* char *型 */ /* 文字数とは関係ないことに特に注意すること。 str_arrayの要素はあくまでポインタなので、サイズは8バイト。 */ printf( "%p\n\n", str_array ); printf("Size of each type\n"); printf(" int: %ld, float: %ld, double: %ld, char: %ld\n", sizeof(int), sizeof(float), sizeof(double), sizeof(char)); printf(" int*: %ld, float*: %ld, double*: %ld, char*: %ld\n", sizeof(int *), sizeof(float *), sizeof(double *), sizeof(char *)); return 0; }