char * itoa(int, char *, int); 第二个参数明明是char*,为什么却又不能是“char*”?

itoa函数在转换整型为字符串时,需要目标参数是一个可写内存的字符串。char * 和 char [] 的主要区别在于内存分配:char * 指向常量区,无法写入;而char [] 在栈上分配内存,可存储数据。itoa函数要求的目标字符串需要是可写的,因此必须确保为char *分配内存,例如通过malloc。直接使用常量字符串或未分配内存的char *会导致编译错误或运行时崩溃。字符串比较应使用strcmp,而不是直接用'==',因为它们比较的是指针地址而非内容。
摘要由CSDN通过智能技术生成

 

Itoa这个函数大家应该多多少少接触过,它的功能使把一个整型按照你给的进制转换成你想要的字符串,也就是这个函数让我觉得有必要再去研究一下字符串数组和字符串指针的区别。


首先看itoa这个函数原型,char * itoa(int originNum, char * targetStr, int standard);

第一个参数你的整型数据,第二个是一个字符串,第三个是一个int型表示N进制。

现在我们测试一下,

char *str=“hello”;

int num=123;

_itoa_s(num, str,10); //vs C++下使用会提示编译错误

itoa(num,str,10);//codeblocks下运行会崩溃,正常环境下都会崩溃的

 

char str2[]=“hello”;

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值