Char 2D Array分别处理字符

时间:2016-11-01 12:41:51

标签: c++ multidimensional-array char

我可以从char表中获取整数吗?例如:

char *table[]={"A","123","2"};

我想显示数字123,但每当我打电话

cout<<*table[1];

我得到了

1

我能解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

在编写char *table[]={"A","123","2"}时,你声明了一个char指针数组。从某种意义上说,这是一个二维数组,你可以打印&#34; 123&#34;使用:

for( unsigned i=0; table[j][i]!='\0'; ++i )    //given j = 1                        
{                                            
    cout << table[j][i];
}

输出:

123

答案 1 :(得分:0)

如果查看operator precedence table for C++,您会发现数组下标[]优先于指针解除引用*。那么,这就是正在发生的事情。

table是一个指针数组。数组中的指针指向字符串的第一个字符。字符串中的下一个字符就是内存中的下一个字符。字符串的结尾是第一个字符,其值为(作为整数)0,称为空终止符。

当您访问table[1]时,您将获得索引1处数组中的元素,这是指向char的指针,表示字符串。当您访问*table[1]时,您将获得索引1中数组中的元素,指向char的指针,然后取消引用该指针,以获取它指向的char。