如果我有这个代码:
int A[5] = { 2, 1, 3, 55 };
int *p = A;
cout << ++(*p);
Run Code Online (Sandbox Code Playgroud)
结果是3并且第一个位置的A值3也是,为什么?
我的意思是,运算符()的层次结构比 层次结构更高++,那么我们首先需要操作*p:
++(*p) => ++(2) => 3
Run Code Online (Sandbox Code Playgroud)
A矢量有任何变化吗?
对于此代码:
#include <iostream>
#include <string>
#include <cstring>
#include <cstdio>
using namespace std;
#define p(a) cout << "|" << a << "|" << endl
int main() {
char a[100];
char b[100];
cin.getline(a, 4, '\n');
cin >> b;
p(a);
p(b);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如果我的输入是“1234”
1234
Run Code Online (Sandbox Code Playgroud)
我有下一个输出:
|123|
||
Run Code Online (Sandbox Code Playgroud)
但我知道使用 getline,我得到三个元素:"123"它发送到a变量添加到\0字符的末尾。以同样的方式,剩余的字符"4\n"留在缓冲区中。那么为什么在接下来"cin>>"它没有被复制到b变量中?,为什么b是null?