
C语言指针问题,请会C的进来指教
#include"stdio.h"#include"conio.h"char*pp[2][3]={"abc","defgh","ijkl","mnopqr","stuvw...
#include "stdio.h"
#include "conio.h"
char *pp[2][3]={"abc","defgh","ijkl","mnopqr","stuvw","xyz"};
main()
{
printf("%c\n",***(pp+1));
printf("%c\n",**pp[0]);
printf("%c\n",(*(*(pp+1)+1))[4]);
printf("%c\n",*(pp[1][2]+2));
printf("%s\n",**(pp+1));
getch();
}
请大家帮帮忙解释下每次输出时的结果和为什么,谢!指针一直搞得不是很明白 展开
#include "conio.h"
char *pp[2][3]={"abc","defgh","ijkl","mnopqr","stuvw","xyz"};
main()
{
printf("%c\n",***(pp+1));
printf("%c\n",**pp[0]);
printf("%c\n",(*(*(pp+1)+1))[4]);
printf("%c\n",*(pp[1][2]+2));
printf("%s\n",**(pp+1));
getch();
}
请大家帮帮忙解释下每次输出时的结果和为什么,谢!指针一直搞得不是很明白 展开
展开全部
对于这类情况,只要掌握一种基本方法就可以识别了。
比如:
char *pp[2][3]={"abc","defgh","ijkl","mnopqr","stuvw","xyz"};
那么pp的类型就是char *[2][3],
pp+1只是将该指针移动了一个单元,这个单元包含3个字符指针长度而已,*(pp+1)的类型是char *[3],其值为{"mnopqr","stuvw","xyz"},**(pp+1)的类型是char *,其值为"mnopqr",***(pp+1)的类型是char,所以其值为m。
后面的结果依次为a,w,z和mnopqr。
比如:
char *pp[2][3]={"abc","defgh","ijkl","mnopqr","stuvw","xyz"};
那么pp的类型就是char *[2][3],
pp+1只是将该指针移动了一个单元,这个单元包含3个字符指针长度而已,*(pp+1)的类型是char *[3],其值为{"mnopqr","stuvw","xyz"},**(pp+1)的类型是char *,其值为"mnopqr",***(pp+1)的类型是char,所以其值为m。
后面的结果依次为a,w,z和mnopqr。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询