在我正在阅读的书中,有一段代码:
string x;
size_t h=0;
for(const char* s=x.c_str();*s;++s)
h=(h*17)^*s;
Run Code Online (Sandbox Code Playgroud)
关于这段代码,我有两个问题:
怎么可能*s是一个条件?这是什么意思?
什么"h=(h*17)^*s"意思?
感谢帮助!
Jam*_*lis 16
- 怎么可以成为一个条件?这是什么意思?
这意味着"虽然指出的价值s不是零." C字符串以空值终止,因此返回的字符串中的最后一个字符c_str()将是空字符(\0由所有位零表示).
- "h =(h*17)^*s"是什么意思?
它乘以h通过17随后xor的IT与价值指向s.