让我们说我有
char number[2] = "2";
Run Code Online (Sandbox Code Playgroud)
在我的代码中,我得到数字2作为字符串,这就是为什么我有char.现在使用atoi我将此char转换为int
int conv_number;
conv_number = atoi(number);
printf("Result : %d\n", conv_number);
Run Code Online (Sandbox Code Playgroud)
返回结果:2.现在我想把这个值放在一个数组中并打印数组的结果.所以我写了
int array[] = {conv_number};
printf("%d\n",array);
Run Code Online (Sandbox Code Playgroud)
不幸的是我的结果不是2而是-1096772864.我错过了什么;
你错过了你array的int[]不是int,这是printf你使用数字格式参数时的预期第二个参数%d.
请printf("%d\n",array[0])改用,因为您想要访问数组中的第一个值.
在这种情况下array,你的printf表达式表现为int*.如果你要使用printf("%d\n",&array[0]),你会得到相同的结果,也就是第一个元素的地址.请注意,如果您真的对地址感兴趣,请使用%p格式说明符.