using namespace std;
int main(int argc, char *argv[]) {
char c[] = {'0','.','5'};
//char c[] = "0.5";
float f = atof(c);
cout << f*10;
if(c[3] != '\0')
{
cout << "YES";
}
}
OUTPUT:5YES
ATOF和非空终止字符数组
ATOF是否与非空终止字符数组过工作?如果是这样,它如何知道在哪里停止?
_I无法重现it_ - **我认为这是一个未定义的行为**。 – deepmax 2013-03-22 12:21:21
@MM。幸运的是,它只是格式化了我的硬盘。 – 2013-03-22 12:21:46
@MM。这是因为它是未定义的行为,很可能c后的内存中有空终止符。 – Overv 2013-03-22 12:22:30