C++ atoi()方法,char*cout II

C++ atoi()方法,char*cout II,c++,while-loop,char,compare,C++,While Loop,Char,Compare,这是的continnum 我不明白的最后一个问题是: 五号线之后, while ( pCur >= pStr && *pCur <= '9' && *pCur >= '0' ) { 这对我来说没有任何意义。pCur和pStr都是char*。char*通常被理解为C样式的字符串,因为它可能(而且经常)指向以空结尾的char数组中的第一个字符。当你做的时候,我可以得到它,但是编译器怎么知道我的意思是pCur或stati

这是的continnum

我不明白的最后一个问题是:

五号线之后,

    while ( pCur >= pStr && *pCur <= '9' && *pCur >= '0' )     {       

这对我来说没有任何意义。

pCur
pStr
都是
char*
char*
通常被理解为C样式的字符串,因为它可能(而且经常)指向以空结尾的
char
数组中的第一个字符。当你做
的时候,我可以得到它,但是编译器怎么知道我的意思是pCur或static_cast(pCur)?在这个while循环中,编译器似乎将其解释为static_cast(pCur),即使pCur是used@HoKy22对
char*
所做的大多数事情都会将其视为指针,因为它就是指针。一个
char*
在任何方面都不是特别的。它只是一个指针。C++库的某些部分对它有不同的处理。最明显的是,输入/输出库具有特殊的重载,用于将
char*
作为C样式字符串处理的函数。
    cout << "pCur: " << pCur << endl;       //line 5
    cout << "pStr: " <<  pStr << endl;  
    bool b = (pCur >= pStr);
    cout << "pCur >= pStr: " << b << endl;
pCur: 2    
pStr: 242
pCur >= pStr: 1
cout << "pCur: " << static_cast<void*>(pCur) << endl;
cout << "pStr: " << static_cast<void*>(pStr) << endl;