首页 > 试题广场 >

以下程序的输出结果是() #include int ma

[单选题]
以下程序的输出结果是()
#include <stdio.h>
int main() {
char str[]="ABCD", *p = str;
printf("%d\n", *(p + 4));
return 0;
}
  • 68
  • 0
  • 字符’D’的地址
  • 不确定的值
推荐
char str[]=”ABCD”相当于
str[0]='A';
str[1]='B';
str[2]='C';
str[3]='D';
str[4]='\0';
而*(p+4)==str[4];
'\0'的ASCII为0
故输出0
编辑于 2017-03-17 23:26:59 回复(2)
输出的是最后一位字符为'\0',ASCII码值为0
发表于 2017-03-19 20:27:48 回复(0)
选B
C风格字符串最后一位字符为'\0',ASCII码值为0
编辑于 2016-12-12 10:35:09 回复(2)
ABCD前面不是还有空格么
发表于 2017-02-20 20:10:24 回复(2)
数组元素有5个
*(p+4)=str[4]='/0'
编辑于 2018-04-24 22:10:04 回复(1)
*(p+4)为str[4],存储的值为‘\0‘,其ASII值为0;p+4不为空
发表于 2018-02-25 20:36:26 回复(0)
字符串在存到数组时末尾多一位存\0,p为char型指针,p+4相当于增加4字节地址,即\0所在内存地址,而\0的ASCII码值为0。
发表于 2018-01-29 19:36:38 回复(0)

直接运行后,答案是0

发表于 2016-12-12 10:11:34 回复(0)


char str[]=”ABCD”相当于



str[0]='A';



str[1]='B';



str[2]='C';



str[3]='D';



str[4]='\0';



而*(p+4)==str[4];



'\0'的ASCII为0


故输出0

发表于 2019-04-05 00:11:14 回复(0)
(1)、char str[]="12345";
或给字符串加上大括号:char str[]={"12345"};
或 char str[6]="12345"
这种方法定义时,系统会自动在字符串的末尾加上字符串结束符,即 ‘\0’,
(2)、char str[10]={'1','2','3','4','5'};
这种方法定义时,系统会自动从未初始化的元素开始,将之后的元素赋为\0,如上面的数组str中的元素实际上是:'1','2','3','4','5','\0','\0','\0','\0','\0'
(3)、char str[]={'1','2','3','4','5'};
这种方法定义时,系统不会自动在字符串的末尾加上字符串结束符;

发表于 2023-02-06 17:25:33 回复(0)
发表于 2020-09-21 14:38:26 回复(0)
字符串哦,最后'\0'结尾。
发表于 2020-09-10 21:15:04 回复(0)
str[]=”ABCD” ==== 》》》  A、B、C、D、\0;
发表于 2020-02-29 15:19:06 回复(0)
字符串终止符“\0”的ASCII码值为0
发表于 2019-09-16 20:27:52 回复(0)
这个A前面有空格吗?
发表于 2019-06-21 10:09:35 回复(0)
常量字符"ABCD" 类型是const char[5],存储的时候是以nul为终止字符的字符串,数组初始化的时候就会存入这五个字符
发表于 2019-03-10 19:03:57 回复(0)
'\0' 的ASCII值为0;
发表于 2018-08-19 15:51:50 回复(0)
*(p+4)==str[4];   '\0'的ASCII为0    故输出0
发表于 2018-05-17 16:30:21 回复(0)
\0 ascii码为0
发表于 2018-05-08 10:19:43 回复(0)
输出的是结束符ASCII码值
发表于 2017-06-06 14:10:34 回复(0)