直截了当地说,
我希望字符指针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];
P.S。我尝试了*
,**
等的各种组合,但似乎没有任何效果。
答案 0 :(得分:12)
使用其地址:
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]
的类型为char
,p
的类型为char *
,其中包含地址。要获取变量的地址,请在其前面添加&
。
指针上的*
运算符以相反的方式工作。如果您想要获得'T'
,请使用:
char theT = *p;
答案 1 :(得分: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;
通过写p = a[i]+j;
你实际上说,我们在一个名为 a [i] 的数组的乞讨处有一个指针,你指向的位置是 j 强大>远离阵列的乞讨!
答案 2 :(得分:-1)
按如下方式更改if部分
if(a[i][j] == 'T' ) {
p = (char *) &a[i][j];
i = 4; break;
}