直奔主题,
我希望字符指针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 我尝试了 , 等的各种组合*
,**
但似乎没有任何效果。
使用它的地址:
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;
还有另一种方法可以得到它
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倍的位置!
更改 if 部分如下
if(a[i][j] == 'T' ) {
p = (char *) &a[i][j];
i = 4; break;
}