在线求
可以这么写吗:printf("%c", *(*(*(&pa + 2) + 2) + 1); #include <stdio.h>
int main(){
char a = {
{
{'a', 'b'}, {'c', 'd'}, {'e', 'f'}
},
{
{'g', 'h'}, {'i', 'j'}, {'k', 'l'}
},
{
{'m', 'n'}, {'o', 'p'}, {'q', 'r'}
},
{
{'s', 't'}, {'u', 'v'}, {'w', 'x'}
}
};
char (*pa) = &a;
char (*ppa) = &a;
printf("%c\n", *(*pa + 17));
printf("%c\n", *(*(*ppa + 8) + 1));
return 0;
} 傻眼貓咪 发表于 2022-2-21 12:25
printf("%c", *(*(*(&pa + 2) + 2) + 1);
可以这么写吗? youxixingzhet 发表于 2022-2-21 14:14
printf("%c", *(*(*(&pa + 2) + 2) + 1);
可以这么写吗?
不能,报错:uninitialized local variable 'pa' used 本帖最后由 傻眼貓咪 于 2022-2-21 20:23 编辑
在 C 里,& 一般用于访问变量地址。而 C++ 也可以用于左值引用。
你的代码 printf() 里面只需运用用指针 * 便可。 youxixingzhet 发表于 2022-2-21 14:14
printf("%c", *(*(*(&pa + 2) + 2) + 1);
可以这么写吗?
你可以这样写:
printf("%c\n", *(*(*(ppa + 2)) + 1)); #include <stdio.h>
int main(){
char a = {
{
{'a', 'b'}, {'c', 'd'}, {'e', 'f'}
},
{
{'g', 'h'}, {'i', 'j'}, {'k', 'l'}
},
{
{'m', 'n'}, {'o', 'p'}, {'q', 'r'}
},
{
{'s', 't'}, {'u', 'v'}, {'w', 'x'}
//{'s', 't'}, {'u', 'v'}, {'z', 'x'}
}
};
char (*pa) = &a;
//char (*ppa) = &a;
//printf("%c", *(*(*(&pa + 2) + 2) + 1);
//printf("%c", *(*(*(&pa + 2) + 2) + 1));
printf("%c\n", *(*(pa + 8) + 1));
printf("%c\n", *(*pa + 17));
printf("%c\n", *(*(pa + 8) + 0) + 1);
printf("%c\n", *(*pa + 16) + 1);
return 0;
}
#include <stdio.h>
int main(){
char a = {
{
{'a', 'b'}, {'c', 'd'}, {'e', 'f'}
},
{
{'g', 'h'}, {'i', 'j'}, {'k', 'l'}
},
{
{'m', 'n'}, {'o', 'p'}, {'q', 'r'}
},
{
//{'s', 't'}, {'u', 'v'}, {'w', 'x'}
{'s', 't'}, {'u', 'v'}, {'z', 'x'}
}
};
char (*pa) = &a;
//char (*ppa) = &a;
//printf("%c", *(*(*(&pa + 2) + 2) + 1);
//printf("%c", *(*(*(&pa + 2) + 2) + 1));
printf("%c\n", *(*(pa + 8) + 1));
printf("%c\n", *(*pa + 17));
//printf("%c\n", *(*(pa + 8) + 0) + 1);
//printf("%c\n", *(*pa + 16) + 1);
return 0;
}
页:
[1]