Когда я определяю тип символа в структуре, кажется, что он занимает более 1 байта; на самом деле, кажется, занимает 4 байта.
Ниже моя программа:
#include <stdio.h>
int main(void)
{
struct book{
char name;
float price;
int pages;
};
struct book b1={'B',130.00,550};
printf("\nAddress of structure:%u",&b1);
printf("\nAddress of character name:%u",&b1.name);
printf("\nAddress of float price:%u",&b1.price);
printf("\nAddress of integer pages:%u",&b1.pages);
printf("\n\n");
return 0;
}
Когда я запускаю вышеуказанную программу, я получаю вывод ниже:
Address of structure:557762432
Address of character name:557762432
Address of float price:557762436
Address of integer pages:557762440
Почему я вижу разницу в 4 байта между адресом переменной "имя" и переменной "цена"?
Система, в которой выполняется эта программа, - x86_64 bit arch, работающая под управлением Fedora-14.