c语言问题 char str[ ]=“ABC”,*p=str;

题目是这样的
char str[ ]=“ABC”,*p=str;
printf(“%d\n”,*(p+3));
请问结果是什么,为什么
答案是0,但是我不知道为什么,第二位留言朋友我也是你那样想的,但是好像还是有问题,如果把*(p+3)改为*(p+2)你认为是多少呢

请问下面一道题呢
int s[2][3]={1,2,3,4,5,6}, (*p)[3]; p=s;
则p+1表示哪个数组
谢谢,回答了我会加分的哦

楼上pc_ace太搞笑了...p是str的首地址.往后面数3个当然是字符串结尾,也就是'\0'...
*(p+3)改为*(p+2),输出自然应该是'C'的ascii码,自然是67
int s[2][3]={1,2,3,4,5,6}, (*p)[3]; p=s;
则p+1是s[1]那个数组
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-03-19
晕~~~~~

char str[] = "ABC\0";
char *p = str;

这样写你可能更清楚一点

p是str字符串的首地址
p+3就是地址往后移动3个位置
*(p+3)解除引用。取其地址上的字符串
结果是"\0";但你把它当成%d输出,所以是0
第2个回答  2009-03-19
0
p是str的首地址。往后数3是/0,在ascii中是0
所以输出时0
第3个回答  2009-03-19
如果是你的这个结果,那么是0,%d输出的是十进制,如果把%d换成%c,则是\0,即是字符串末尾标记。如果要输出“c”则为
printf(“%c\n”,*(p+2));
第4个回答  2009-03-19
C啊.你说是什麽?p是str的首地址.往后面数3个就是C了.

c语言问题 char str[ ]=“ABC”,*p=str;
楼上pc_ace太搞笑了...p是str的首地址.往后面数3个当然是字符串结尾,也就是'\\0'...(p+3)改为*(p+2),输出自然应该是'C'的ascii码,自然是67 int s[2][3]={1,2,3,4,5,6}, (*p)[3]; p=s;则p+1是s[1]那个数组

...char str[]=”ABC”,*p=str; printf(“%d\\n”,*(p+
字符串str实际上后面加了一个'\\0',而*(p+3)即将第字符串第四个字符的ascii打印出来,这个字符是'\\0'.它的ascii码为0

c语言 什么意思 看不懂 char str[]="abc\\0def\\0ghi",*p=str;
char *p;p=str;第一行:char str[]="abc\\0def\\0ghi"的意思是声明一个名为str的char型数组,并用字符串abc\\0def\\0ghi初始化(就是由编译器把这个字符串的字符一个接一个地存储到数组str中,并在最后加一个结束符'\\0')。第二行:char *p;就是声明一个指向char型变量的指针p(或叫char *型...

char str[]="abc\\0def\\0gji",*p=str; printf("%s",p+5); 运行结果是什...
char str[]="abc\\0def\\0gji",*p=str; \/\/这里p指向了str的首地址,即a所在的位置 p+0 指向a p+1 指向b p+2 指向c \\0 整体是一个字符,(下同。看书中的转义字符说明) p+3 p+4 指向d p+5 指向e printf("%s",p+5); \/\/printf在输出字符串时,遇到'\\0'则停止...

c语言中怎么定义一个字符串数组指针
c语言中定义一个字符串数组指针可以这样写:\/\/ Example program#include <stdio.h>int main(){ char str[] = "abc"; char *p = str; printf("%s\\n", str); printf("%s\\n", p); return 0;}

关于C语言的问题
;for(;*s!=’\\0’;s++) printf(“*”);答案:6次 例26:下面程序段的运行结果是( )char *s=”abcde”;s+=2;printf(“%d”,s);答案:是一个很大的数字,具体值不确认,是s的指针地址值加2.char str[ ]=”ABC”,*p=str;printf(“%d\\n”,*(p+3));答案:0 ...

...main() { char str[]="ABCDEF",*p=str; print("%c",*(p+2)); }...
答案是C 那个输出错误,为printf

c语言二级指针中二级指针p,*p是地址还是值,为什么有的时候就是值而不...
对于一级指针而言,*p是取值,对于二级指针而言,*p是取地址,但是地址又是无符整形数据,所以在二级指针中你把*p当值来用的话,编译不报错,但是不合规定。

c语言字符数组初始化语法:char str[]=""与char str[]={}有何区别?
char str[]="abc" ;char str[]={"abc"} ;那就没区别 char str[]="abc" ;char str[]={'a','b','c'} ;那就有区别了,char str[]="abc" ;相当于char str[]={'a','b','c',0 } ;这样就看出区别了,数组长度不一样,一个是4因为会自动添加一个结束符,一个是3不会添加...

我这有C语言的题,哪位大侠能解决一下,必有重谢!
c=tue; d=wed; printf("%d %d %d %d\\n",a,b,c,d); }本题(1分)A: 0 0 5 0B: 1 2 5 4C: 0 1 5 6D: 0 1 5 3 A B C D 27、有以下程序:main(){ char str[ ][8]={“Hello”,“Beijing”},*p=str; printf(“%s\\n”,p+8);}该程序运行后的输出结果是( )。本题(1分)...

相似回答