char str[]="ABCD",*p=str; printf("%d\n",*(p+4)); 为什么结果会是0,求详解... 为什么结果会是0,求详解 展开 我来答 可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。 printf char str p+4 搜索资料 2个回答 #热议# 为什么有人显老,有人显年轻? 忧郁的烟鬼 2011-03-21 · 超过10用户采纳过TA的回答 知道答主 回答量:23 采纳率:0% 帮助的人:21.8万 我也去答题访问个人页 关注 展开全部 这个其实不难,最主要的是要理解指针,*(p+4),p代表str内存中的第一个位置,也就是说,原本*p的值是A,*(p+1)是B,*(p+2)是C,*(p+3)D,所以*(p+4)已经超出了str的内存,他指向一块空的内存,所以打印出来的结果就为0了! 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 jar10302 推荐于2017-10-06 · TA获得超过137个赞 知道答主 回答量:93 采纳率:0% 帮助的人:98.4万 我也去答题访问个人页 关注 展开全部 char str[]="ABCD",*p=str; 语句中p指针指向字符串数组str的首地址,printf("%d\n",*(p+4)); 语句中 p+4 指向str数组的第五个字符(字符串默认以'\0'结尾)'\0'故输出'\0'的ASCII码 0 本回答被网友采纳 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询 其他类似问题 2022-04-12 char s[]="123",*p; p=s; printf("%c%c%c\n",*p,*++p,*++p); 1 2020-05-03 char a[7]= “abcdef”, b[4]= “ABC”; strcpy(a,b) 14 2022-08-17 为什么char s[]={'s','t','r','i','n','g'};printf("%d\ 2022-05-24 定义char a[4][10]={"11","22","33","44"}则puts(strcat(a[1],a[3]))的结果() 2017-09-30 C语言 char str[ ]="ABCD",*p=str; 语句printf("%d\n",*(p+4));输出结果为0,为什么? 3 2017-09-08 char str1[]="abc";char str2[]="abc";cout<<(str1==str2)<<endl; 38 2018-03-08 {char arr[2][4]; strcpy(arr[0],"you");strcpy(arr[1],"me"); arr[0][3]='&'; printf("%s",arr[0]);} 63 2017-12-06 设有char str[10],下面语句正确的是:A.scanf("%s",&str) B.printf("%s",str) 有什么区别啊? 5 更多类似问题 > 为你推荐: