之前我在xcode中使用c语言atoi函数时,能转换成对应的整数,但当在dev c++
中运行,却转换出错。我想知道这是为什么呢?
先说一下之前没贴代码,之前去青岛三天,去的那天晚上写的问题,回来两天是考试,很抱歉没贴代码,我的错。
下面是正题:
今晚我又看了一遍代码,发现之前忽略了atoi函数的参数是字符串,所以之前的代码是
屏幕快照 2017-06-15 20.14.15
屏幕快照 2017-06-15 20.14.23
结果是
在xcode中没有出错,而在dev c++中出错,结果为
错误源码.PNG
错误结果.PNG
就这样让我摸不着头脑,今晚我改成了
修改后的源码.PNG
结果正确
现在还有个疑问求大家解答:
对于单个字符t1,在atoi中,atoi(t1)会报错,而atoi(&t1)不会报错,我想问’&‘的作用是什么,请指教。
其实
atoi()
的参数为const char *str
,也就是一个指向字符的指针,而t1显然不是一个指针,所以atoi(t1)
会报错。而&为取地址操作,&t1的值就是t1所在的地址的值,相当于一个指向t1的指针的值,所以
atoi(&t1)
是合法的。作为参数传递时,C中的字符串和字符数组实际实现为传递其指向第一个字符的指针。