以下のプログラムでは、通常のint変数の場合、文字のデータが正しく印刷され、なぜデータがintで正しく印刷されないのですか?文字から整数ポインタへの変数格納がデータを正しく取得していない
ケース1
#include <stdio.h>
int main()
{
int *i = NULL;
char s = 'A';
i = (int *)&s; // storing
printf("i - %d\n",*i);
return 0;
}
出力:
i - 1837016897
65値は、ここでは印刷されないのはなぜ?
ケース2
#include <stdio.h>
int main()
{
int *i = NULL;
char s = 'A';
i = (int *)&s; // storing
printf("i - %c\n",*i); // if we display character stored here
// then it is printed properly
return 0;
}
出力:
ケース3
#include <stdio.h>
int main()
{
int i = 0;
char s = 'A';
i = s;
printf("i - %d\n",i); // in this case data is properly printing
return 0;
}
出力:
i - 65
sizeof(int)とsizeof(char)は異なる値を返します。....... so ...... – LPs