我最近发现了一篇帖子cout << c ++ << c ;?的正确答案是什么?并且想知道是否输出
int c = 0;
printf ("%d %d", c++, c);
Run Code Online (Sandbox Code Playgroud)
还未定义?
我已经在讲座中研究了修复后和前缀运算符只有在得到分号后才增加值.所以据我说,输出0 0是正确的!
我有以下代码.
int x=80;
int &y=x;
x++;
cout<<x<<" "<<--y;
Run Code Online (Sandbox Code Playgroud)
输出结果是80 80.我不明白怎么做.我认为x的输出是81,尽管我对y一无所知.参数变量如何受减量运算符的影响.有人可以解释一下吗?
我很难理解下面代码中的调用顺序.我期待看到下面的输出
A1B2
Run Code Online (Sandbox Code Playgroud)
虽然我可以看到我得到的输出是
BA12
Run Code Online (Sandbox Code Playgroud)
我认为这个电话std::cout<< b->fooA() << b->fooB() << std::endl相当于电话
std::cout.operator<<( b->fooA() ).operator<< ( b->fooB() )
Run Code Online (Sandbox Code Playgroud)
但我可以看到情况并非如此.你能帮助我更好地理解它是如何运作的以及与全球的关系operator<<吗?这是最后一次调用这个序列吗?
问候
AFAG
#include <iostream>
struct cbase{
int fooA(){
std::cout<<"A";
return 1;
}
int fooB(){
std::cout <<"B";
return 2;
}
};
void printcbase(cbase* b ){
std::cout << b->fooA() << b->fooB() << std::endl;
}
int main(){
cbase b;
printcbase( &b );
}
Run Code Online (Sandbox Code Playgroud) #include <iostream>
using namespace std;
int main()
{
int x=80;
int &y=x;
cout<<"x"<<x<<" "<<"y"<<y++;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
上面的代码给了我以下输出:
81 80
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释一下x变化的价值如何81?yis 的值80然后会增加到81,但它是如何反映的x?
它是否反映因为y是参考变量?然后该值应该在两个已被修改x和y?
当我突然注意到时,我只是输出了文字.
#include <iostream>
int main()
{
int array[] = {1,2,3,4};
int *p = array;
std::cout << *p << "___" << *(p++) << "\n";
// output is 1__1. Strange, but I used brackets! it should be at
// first incremented, not clear.
p = array;
std::cout << *p << "___" << *(++p) << "\n";
// output is 2_2 fine, why first number was affected? I didn't intend
// to increment it, but it …Run Code Online (Sandbox Code Playgroud) 在下面的程序中,我调用一个函数foo()来设置一个全局变量i
,然后调用构造函数class A,其中i也应该设置,但是10.但是我的程序输出是3 0,你能解释一下吗?
#include <iostream>
int i;
class A
{
public:
~A()
{
i=10;
}
};
int foo()
{
i = 3;
A ob;
return i;
}
int main()
{
std::cout << "i = " << foo() << " " << i << "\n";
}
Run Code Online (Sandbox Code Playgroud) 我无法理解Post Increment(++),Pre Increment(--)和加/减在一个例子中是如何协同工作的.
x++ 意味着将1添加到变量中.
x-- 意味着从变量中减去1.
但我对这个例子感到困惑:
int x = 2, y = 3, z = 1;`
y++ + z-- + x++;
Run Code Online (Sandbox Code Playgroud)
我认为这意味着3(+1) + 1(-1) + 2(+1)这意味着结果应该是7.
但是当我编译它时,我得到了6.我不明白.
int main() {
int x=2, y=3, z=1;
int result;
result = y++ + z-- + x++; //this returns 6
cout << result << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我真的不知道后缀.我知道它首先使用标识符然后增加或减少,如第一次显示i然后++.但现在我认为我错了,仍然不明白.
#include <iostream>
using namespace std;
int main()
{
int i = 0;
cout << i << i++ << i;
cout << "\n\n\nPress Enter to close the window . . . ";
cin.clear();
cin.sync();
cin.get();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
101
Press Enter to close the window . . .
Run Code Online (Sandbox Code Playgroud)
首先i在增量加入之前改变.为什么?
我期望
001
Press Enter to close the window . . .
Run Code Online (Sandbox Code Playgroud)
有人可以解释.