我可以从char表中获取整数吗?例如:
char *table[]={"A","123","2"};
我想显示数字123,但每当我打电话
cout<<*table[1];
我得到了
1
我能解决这个问题吗?
答案 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。