char str[80];
cin >> str+1;
cout << str+1;
Run Code Online (Sandbox Code Playgroud)
这+1是什么意思?它是如何工作的?任何帮助,将不胜感激.谢谢你的答复.
它是指针算术.str是一个80 char秒的数组.C++支持隐式数组到指针的转换,这意味着在大多数表达式中,str它会自动转换为char *.+ 1然后应用于该指针,产生相同的地址&str[1].
cin >> str+1;
Run Code Online (Sandbox Code Playgroud)
这从标准输入读取,将结果存储在从str[1](1)开始的缓冲区中.
cout << str+1;
Run Code Online (Sandbox Code Playgroud)
这将从标准输出开始写入,str[1]直到NUL终结符(2).
实际上,操作只是忽略数组的第一个元素str.
(1)注意没有边界检查.如果输入超过78个字符(第一个字符为80 - 1,NUL终止符为1),将发生未定义的行为(很可能是缓冲区溢出).
(2)如果数组中没有NUL终结符,将再次出现未定义的行为.
| 归档时间: |
|
| 查看次数: |
194 次 |
| 最近记录: |