11

直奔主题,

我希望字符指针p指向唯一包含字符“ T”的数组元素。

char a[100][100];
char *p;

for(int i=0;i<4;i++)
  for(int j=0;j<4;j++)
    if(a[i][j] == 'T')
      p = a[i][j];

PS 我尝试了 , 等的各种组合***但似乎没有任何效果。

4

3 回答 3

15

使用它的地址:

char a[100][100];
char *p;

for(int i=0;i<4;i++)
  for(int j=0;j<4;j++)
    if(a[i][j] == 'T')
      p = &a[i][j];

a[i][j]is 属于 typechar并且p属于 type char *,其中包含一个地址。要获取变量的地址,请在其前面加上&.

指针上的*运算符反过来工作。如果您想获得'T'支持,您可以使用:

 char theT = *p;
于 2013-04-13T08:02:09.180 回答
7

还有另一种方法可以得到它

char a[100][100];
char *p;

for(int i=0;i<4;i++)
   for(int j=0;j<4;j++)
       if(a[i][j] == 'T')
           p = a[i]+j;

通过写你实际上是说,我们有一个指针指向一个名为a[i]p = a[i]+j;的数组,你指向距离该数组的请求j倍的位置!

于 2013-04-13T08:28:35.080 回答
-1

更改 if 部分如下

  if(a[i][j] == 'T' ) {
       p = (char *) &a[i][j];
       i = 4; break;
  }
于 2013-04-13T08:05:36.507 回答