小编Kes*_*arg的帖子

为什么C++中字符数组和整数数组的基本属性有区别?

如果我执行此代码:

#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它返回的内存地址。这是为什么?另外,两个不同的在线编译器如何返回相同的内存地址?

我试过在网上寻找这个,但我不知道要寻找什么?

c++ arrays

2
推荐指数
1
解决办法
222
查看次数

后增量运算符如何工作。有例外吗?

考虑这段代码

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++;,如果不是,那么第一种情况会发生什么。我知道这是一个愚蠢的怀疑,但我自己无法弄清楚。

c++ undefined-behavior post-increment

1
推荐指数
1
解决办法
132
查看次数

标签 统计

c++ ×2

arrays ×1

post-increment ×1

undefined-behavior ×1