首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++在同一行上声明指针和数组合法吗?

C++在同一行上声明指针和数组合法吗?
EN

Stack Overflow用户
提问于 2013-07-13 01:43:02
回答 1查看 1.2K关注 0票数 4

下面的代码可以工作,但是我被告知它没有用VisualC++ 2010的gcc 3.4.2编译,而且可能是非法的:

代码语言:javascript
复制
int ar1[]{0,1,2,3,4,5,6,7,8,9},
    *ptr1 = ar1,
    ar2[]{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18},
    *ptr2 = ar2;

显然,您需要对其进行一些修改才能工作(类似于此):

代码语言:javascript
复制
int ar1[]{0,1,2,3,4,5,6,7,8,9};
int *ptr1 = ar1;
int ar2[]{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18};
int *ptr2 = ar2;

是那么回事吗?数组和指针不能一起声明吗?

(代码在QT + gcc 4.8上编译得很好)

EN

回答 1

Stack Overflow用户

发布于 2013-07-13 02:10:28

所述声明使用C++11初始化语法。从预C++11编译器的角度来看,它在语法上是不正确的.但是,如果在每个=之前添加一个{,那么它将成为普通且完全合法的C++98声明(以及C声明)。

在一个声明中使用多个声明器没有问题,即使将指针和数组声明器混合在一起也没有问题。如果愿意,可以将函数声明器添加到该组合中。唯一的限制是不能在其中嵌入函数定义。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17626176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档