#include <stdio.h>
#include <string.h>
int * bin(char a);
int main(void){
char a='a';
int k=0;
int *binary;
binary=bin(a);
for(k=0; k<8; k++){
printf("%d", *binary++);
printf("\n");
}
return 0;
}
int *bin(char a){
int i=0;
int *arr;
int output[8];
char c=a;
for (i = 0; i <8 ; ++i) {
output[8-i-1] = (a >> i) & 1;
}
arr=&output[0];
// for (i = 0; i <8 ; ++i) {
// printf("%d", output[i]);
// }
// printf("\n");
return arr;
}
输出应该是 char 'a' 的二进制值,即:0 1 1 0 0 0 0 1
但我得到了这个:0 -1216804320 -1218095335 -1216804320 10 -1076423592 -1218208721 -1216804320
这是指针问题吗?我该如何解决它才能打印正确的答案?谢谢!!