数组和指针的区别
//head.h
#define ARRLEN 1024
int arr[ARRLEN]
//main.cpp
#include<iostream>
#include"head.h"
using namespace std;
extern int *arr; //this is error
//extern int arr[]; //this is ok
int main(void)
{
for (int i=0;i<ARRLEN;i++)
{
arr[i] = i;
}
for (int i=0;i<ARRLEN;i++)
{
cout<<arr[i]<<endl;
}
return 0;
}
COMPILE ERROR MESSAGE AS FOLLOWS
main.cpp:5:13: error: conflicting declaration ‘int* arr’
extern int *arr; //this is error
^
In file included from main.cpp:2:0:
head.h:4:5: error: ‘arr’ has a previous declaration as ‘int arr [1024]’
int arr[ARRLEN];
本文通过一个具体的编译错误示例介绍了数组与指针之间的区别。详细解释了为什么在C++中不能将数组声明为外部指针类型,而可以声明为外部数组类型,并提供了正确的实现方式。

被折叠的 条评论
为什么被折叠?



