gpt4 book ai didi

c++ - 将 itoa 与整数一起使用。设置缓冲区的限制

转载 作者:行者123 更新时间:2023-11-30 05:09:09 25 4
gpt4 key购买 nike

我正在使用 itoa 查看这个示例,想了解更多关于该语句的信息

char buffer [sizeof(int)*8+1];

为什么作者做[sizeof(int)*8+1]?我理解sizeof(int) 但为什么作者要这样做*8+1

这是代码

#define _OPEN_SYS_ITOA_EXT
#include <stdio.h>
#include <stdlib.h>

int main ()
{
int i;
char buffer [sizeof(int)*8+1];
printf ("Enter a number: ");
if (scanf ("%d",&i) == 1) {
itoa (i,buffer,DECIMAL);
printf ("decimal: %s\n",buffer);
itoa (i,buffer,HEX);
printf ("hexadecimal: %s\n",buffer);
itoa (i,buffer,OCTAL);
printf ("octal: %s\n",buffer);
}
return 0;
}

我从 here 得到这个例子

最佳答案

如果您有一个int,那么它的二进制位数是sizeof(int) * CHAR_BIT。因为通常 CHAR_BIT 是 8,只要它是 char buffer [sizeof(int)*8+1]; 就会创建一个可以存储所有二进制数字的缓冲区,并且有效 C 字符串所需的终止空字符。

关于c++ - 将 itoa 与整数一起使用。设置缓冲区的限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46328363/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com