C++ atoi()方法,char*cout II
这是的continnum 我不明白的最后一个问题是: 五号线之后,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
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;