首页 > 试题广场 >

以下程序的输出结果为( ) int...

[单选题]
下面程序的输出为()
int main() {
    char *ptr;    
    char arr[] = "12345678";
    ptr = arr;
    ptr += 5;
    printf("%s", ptr);
    return 0;
}
  • 5678
  • 678
  • 编译错误
  • 其它选项都不对
这题答案错了,应该是printf("%s",ptr); 没有*
否则运行sigv了。
发表于 2021-06-16 10:17:06 回复(1)
char型指针从0开始移动5位,所以+5以后指针指在6的位置,输出为678
发表于 2019-12-16 16:38:32 回复(0)
#include<stdio.h>

int main()
{
char *ptr;
char arr[] = "12345678";
ptr = arr;
ptr += 5;
printf("%s\n",&*ptr);
return 0;
}

正解指针ptr取地址才是678

发表于 2021-06-07 15:06:04 回复(1)
ptr指向的不应该是该字符串的地址吗?应该输出*ptr吧?
发表于 2020-11-26 09:03:41 回复(1)
*ptr是char指针,指向一个字符,指针移动也是一个char位置~
发表于 2021-03-23 17:53:59 回复(0)
ptr不是地址么 输出类型是字符串,不应该是编译不通过么🤨😐
发表于 2020-04-03 15:46:24 回复(3)
%s 输出得是字符串,所以给个 ptr 地址就可以啦
发表于 2023-07-19 22:46:58 回复(0)
用指针打印字符串会因为数组越界而报错
发表于 2023-08-09 00:10:23 回复(0)
int main() {
    char *ptr;   
    char arr[] = "12345678";
    ptr = arr;
    ptr += 5;
    printf("%s", ptr);
   //这里面&*ptr和ptr运行结果都是678,若为*ptr则编译错误,若为&ptr则出现乱码。
    return 0;
}
发表于 2021-11-13 19:01:32 回复(0)
运行了下代码,编译报错了。。
发表于 2021-09-24 17:36:34 回复(0)
在printf("%s",*ptr)里面不取地址他能打印吗?
发表于 2021-09-09 08:51:22 回复(0)
答案错误,gcc下是编译报警,执行出错
发表于 2021-09-06 16:42:11 回复(0)
ptr存的是arr的地址
发表于 2021-06-21 23:09:19 回复(0)
printf里面应该是要用地址的吧,这里用*ptr能得到结果?
发表于 2021-06-04 18:10:59 回复(0)
对啊,输出字符串可以直接输出指针吗?
发表于 2020-08-18 14:44:00 回复(0)

地址也可以加,然后移动地址位置

发表于 2020-02-28 18:27:13 回复(0)