1.整型数据转换成字符型数据时数据过大;
int ch1 = 5566;
char ch2 = (char)ch1;
printf("%c \n", ch2 );
输出乱码�;char类型最大范围到127,所以ch1最大只能到127。
2.int ch1 = 0x128;
int *ch2 = (int*)ch1;
printf("%d \n", *ch2 );
与
int ch1 = 0x128;
int *ch2 = (int)ch1;
printf("%d \n", *ch2 );
结果是否相同? 实验表明结果相同(int*)ch1 把ch1转换成整型指针,其内容为0x128,第二个相当于将地址0x128直接给指针变量ch2。
3.int ch1 = 97;
char *ch2 = (char*)ch1;
printf("%c \n", *ch1 );
与
int ch1 = 97;
char *ch2 = ch1;
printf("%c \n", *ch1 );
结果是否相同?实验表明结果相同,但 char *ch2 = ch1; 在一些软件上回报错,最好不要使用。
----上述两个问题说明变量ch1的值是本质,而变量类型是其外在表现。
4.int a = 1 , b = 2 ;
{
int a = 9;
printf("%d %d ", a, b);
}
printf("%d ", a);
输出结果如何?
9 2 1 复合语句内定义变量a只在符合语句内起作用,变量b不仅作用于外部还用于复合语句内部。
以上内容如有错误欢迎指正