Blu*_*sul 2 c++ pointers for-loop
我刚刚在参考书中看到了这个循环,但是我不确定比较中发生了什么,因为它只是一个单独的指针.
char input[300], *p, *q[300], **r = q;
cin.getline(input, 300);
for (p = input; *p; p++)
Run Code Online (Sandbox Code Playgroud)
它会如何工作?
input是一个以null结尾的字符串.cin.getline将0在读取字符串的最后一个字符后面放置一个,或者input[299]如果该行超过299个字符.
char值被隐含地转换为布尔值.如果它不为零则变为真,如果它为零则变为假.因此循环条件相当于*p != 0.
因此,循环将遍历数组,直到它遇到零,即字符串的结尾.
| 归档时间: |
|
| 查看次数: |
48 次 |
| 最近记录: |