如果我执行此代码:
#include<iostream>
using namespace std;
int main(){
char str[20] = {'a','b','c','d','e'};
cout<<str<<endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它输出abcde但如果我执行此代码:
#include<iostream>
using namespace std;
int main(){
int arr[20] = {1,2,3,4,5};
cout<<arr<<endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它输出0x7fff22eecc30我尝试在两个不同的在线编译器中执行此代码,并且它们给出相同的输出。
在char array它返回数组的内容,但在int array它返回的内存地址。这是为什么?另外,两个不同的在线编译器如何返回相同的内存地址?
我试过在网上寻找这个,但我不知道要寻找什么?
考虑这段代码
int j = 0;
int x = 0;
for(int i=0;i<5;i++){
j = x++;
cout<<x<<" ";
}
Run Code Online (Sandbox Code Playgroud)
输出:
1 2 3 4 5
现在考虑这个
int j=0;
for(int i=0;i<5;i++){
j = j++;
cout<<j<<" ";
}
Run Code Online (Sandbox Code Playgroud)
输出:
0 0 0 0 0
我的疑问是为什么j在分配 value 后没有增加0。不j=j++;等于j = j; j++;,如果不是,那么第一种情况会发生什么。我知道这是一个愚蠢的怀疑,但我自己无法弄清楚。