linklate 发表于 2019-10-4 17:40:39

关于数组名的问题

请大家帮我看一下,这样做为什么会报错,数组名应该可以作为首元素的地址吧?
#include <iostream>
#include <stdio.h>
using namespace std;

int array = { 1,2,3,4,5 };
int *ptr = array;

int main()
{
        cout << *ptr + 1 << endl;
        cout << *(ptr + 1) << endl;
}

报错信息:“array”不明确

人造人 发表于 2019-10-4 17:46:51

using namespace std;造成的名字冲突

#include <iostream>
#include <stdio.h>

int array = {1, 2, 3, 4, 5};
int *ptr = array;

int main()
{
        std::cout << *ptr + 1 << std::endl;
        std::cout << *(ptr + 1) << std::endl;
}

linklate 发表于 2019-10-4 19:15:59

人造人 发表于 2019-10-4 17:46
using namespace std;造成的名字冲突

谢谢谢谢,请教一下,为什么会造成冲突呢?在cout前加std::不是就等价于在最开始加上using namespace std了嘛

人造人 发表于 2019-10-4 19:24:31

linklate 发表于 2019-10-4 19:15
谢谢谢谢,请教一下,为什么会造成冲突呢?在cout前加std::不是就等价于在最开始加上using namespace std ...

std空间已经有了array这个名字了

下面这样就可以
#include <iostream>
#include <stdio.h>

int arr = {1, 2, 3, 4, 5};
int *ptr = arr;

int main()
{
        std::cout << *ptr + 1 << std::endl;
        std::cout << *(ptr + 1) << std::endl;
}
页: [1]
查看完整版本: 关于数组名的问题