指针指向数组,可是却无法输出数组元素,求教。
#include<stdio.h>int * tenToTwo (int a) {// 此函数将0-9的10进制转化成4位的2进制数,即0000-1001
int i = 0;
int result[4];//用于保存4为2进制数
int * p = result;//p为将来的返回值
while(i<4) {
result[i] = (a&0x8)>>3;
a = a<<1;
i++;
}
for(i=0;i<4;i++) //这里还没错呢,输出1001
printf("%d",p[i]);
printf("\n");
return p;
}
int main() {
int i = 0;
int* p = tenToTwo(9); //将9这个10进制数转化成2进制数,即得到1001,保存在一个长度为4的数组中,p指向此数组的首地址
for(i=0;i<4;i++) //这里出错了,指针明明指向数组,却输出奇怪的数字,不知道为什么
printf("%d",p[i]);
return 0;
}