/*
 *      ポインタの活躍例
 */
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

struct PERSON {
    char name[32], address[256], phone[16], e_mail[16];
    int age;
};

void print_data_struct(struct PERSON d)
{
    printf("name = %s\n", d.name);
    // …
}

void print_data_pointer(struct PERSON *d)
{
    printf("name = %s\n", d->name);
    // …
}

int main()
{
    struct PERSON data;

    // data 作成
    strcpy(data.name, "名前");
    // …

    printf("print_data_struct ( data); 実行…  ");print_data_struct ( data);
    printf("print_data_pointer(&data); 実行…  ");print_data_pointer(&data);
    printf("\nポインタ使用の有無によって、関数に渡すデータのサイズは異なる\n");
    printf("  ・ポインタ使用せず ～ sizeof(struct PERSON  ) = %3d\n", sizeof(struct PERSON  ));
    printf("  ・ポインタ使用する ～ sizeof(struct PERSON *) = %3d\n", sizeof(struct PERSON *));

    return 0;
}