标签:
函数形式为: int atoi(const char *nptr);
#include<stdio.h>
int main()
{
char a=‘7‘;
char b=‘2‘;
printf("a=%d,b=%d\n",atoi(&a),atoi(&b));
return 0;
}
输出结果:
a=7,b=27
修改代码如下:
#include<stdio.h>
int main()
{
char a=‘7‘;
char b=‘2‘;
printf("a=%d,b=%d\n",atoi(&a),atoi(&b));
printf("a=%p,b=%p\n",&a,&b);
return 0;
}
输出结果:
a=7,b=27
a=0x7fff85cd714f,b=0x7fff85cd714e
由此可见,atoi()在转换b时第一个去的自符2,之后去的自符7,所以atoi(&b)输出结果27,所以在实际使用中如果不能确定内存数据排列情况尽量不要用atoi(),最好自己写个转换函数。
标签:
原文地址:http://www.cnblogs.com/wangliangblog/p/5121955.html