在C ++中的2D数组中声明指向1D数组的指针

贾斯汀·詹姆斯(Justin James)

这段代码在C语言中效果很好,但在C ++中效果不好。有人能告诉我如何在2-D数组中传递指向1-D数组的指针吗?

    #include<iostream>
    #include<stdio.h>
    int main(){
              int s[5][2]={ 
                          {0,1},   
                          {2,3},
                          {4,5},
                          {6,7},
                          {8,9}   
                };
        }

    int (*p)[2];
    int i,j,*pointer;

       for(i=0;i<=4;i++){
             p=&s[i];

如果我在C语言中正常工作时删除(int *),则此行会产生错误。它说无法将int()[2]转换为(int)。

             pointer=(int*)p;
             printf("\n");

       for(j=0;j<=1;j++)
       {
             printf("%d\t",*(pointer+j));
       }
    return 0;
    }
来自莫斯科的弗拉德

如果要添加缺少的右括号,则代码将成功编译(位于www.ideone.com)

#include <cstdio>

int main() 
{
    int s[5][2] = 
    { 
        { 0, 1 },
        { 2, 3 },
        { 4, 5 },
        { 6, 7 },
        { 8, 9 }
    };

    int ( *p )[2];  
    int i, j, *pointer;

    for( i = 0; i <= 4; i++ )
    {
        p = &s[i];
        pointer = (int*)p;
        printf( "\n" );

        for ( j = 0; j <= 1; j++ )
        {
            printf( "%d\t", *( pointer + j ) );
        }
    }

    return 0;
}

输出是

0   1   
2   3   
4   5   
6   7   
8   9

考虑到最好写

pointer = *p;

代替

pointer = (int*)p;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在C中交换2d数组(指向指针的指针)

来自分类Dev

在C中交换2d数组(指向指针的指针)

来自分类Dev

为什么在C ++中声明动态2D数组时使用指针指向?

来自分类Dev

指向C中的2D数组的指针

来自分类Dev

无法在C中的struct中声明指向struct的指针数组

来自分类Dev

C:指向2d数组的指针

来自分类Dev

如何在C中声明指向struct的指针数组,然后使用它?

来自分类Dev

C中的2D数组指针

来自分类Dev

指向C ++中动态分配的2D数组中的一行的指针

来自分类Dev

从C中的2D数组中产生1D数组

来自分类Dev

在C中如何基于1D数组分配2D数组?

来自分类Dev

从C中现有的1D数组创建2D数组?

来自分类Dev

用1d char数组附加2d char数组(在C中)

来自分类Dev

如何在C ++中初始化指向动态2D数组的指针

来自分类Dev

如何创建指向2D指针数组的指针-C

来自分类Dev

指向2D数组C,C ++的指针

来自分类Dev

如何在C ++中声明和使用2D指针数组

来自分类Dev

C ++ 2D数组到1D数组

来自分类Dev

C ++ AMP中1D和2D数组上operator []的行为。

来自分类Dev

在C ++中通过引用传递1d和2d数组

来自分类Dev

指向2D数组参数(C)的指针

来自分类Dev

声明指向2D枚举数组的指针

来自分类Dev

C ++语法差异:2D和1D数组(指针算术)

来自分类Dev

C ++-1D中的动态数组有效,而2D中的动态数组无效

来自分类Dev

C ++中的2D对象指针数组

来自分类Dev

通过C中的指针传递的2D数组

来自分类Dev

C ++中具有2D数组的指针

来自分类Dev

在C中的extern声明2D数组?

来自分类Dev

如何在c ++中以特定形式将内容从1d数组传输到2d数组?