Code Bye

atoi函数的一点疑惑,求帮助

解决方案

15

atio的参数是字符串,假如第一个非空格字符存在,是数字或正负号则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。否则,返回零。
&ch2的字符串在你的电脑中被认为成 “43”了。

10

这个跟编译环境和内存环境有关了,栈分配是从高地址向低地址分配的,假如ch1和ch2的地址相邻,因ch1在高地址,ch2在低地址,假如ch1后面又刚好是一个终止符,那么num2就可能是34.
atoi的参数是一个c风格的字符串,即以终止符结束的字符串。
本人在VS上得不到你这样的结果,这样的将一个单字符的地址传给atoi是未定义行为

10

atoi的传入参数应该是以空白符结尾的字符串,你传入的是字符指针,但atoi仍把其当作字符串指针对待,直到遇NULL为止。至于打印出来是43,这跟栈的变量存放顺序有关。

5

atoi需要的参数是以\0结尾的字符串,而不是一个字符

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明atoi函数的一点疑惑,求帮助