【牛客 题库】 考察数组指针的指向

来源:互联网 发布:nginx 403拒绝访问 编辑:程序博客网 时间:2024/06/05 00:26

1.执行以下语句,输出结果为()

char *p1="hello";char *p2="world";char *p3="a piece of cake";char *str[]={p1,p2,p3};printf("%c",*(str[0]+1));

  • world
  • hello
  • 编译时错误
  • 其他选项都不正确

解答:D

为了便于理解,我重新改写了一下代码:

#include <iostream>using namespace std;int main(){char* p1 = "hello";char* p2 = "world";char* p3 = "cake";char* str[] = { p1, p2, p3 };printf("%s\n", *str);printf("%c\n", *(str[0]));printf("%c\n", *(str[0] + 1));printf("%s\n", *(str + 1));printf("%c\n", *(str[1]));printf("%c\n", *(str[1] + 1));return 0;}
输出结果如下:



说明:*str指的是字符数组的第一个元素"hello",而*(str+1)是字符数组的第二个元素"world"

   *(str[0])指的是第一个元素的第一个字符h, *(str[0]+1)指的是第一个元素的第二个字符h

   *(str[1])指的是第二个元素的第一个字符w, *(str[1]+1)指的是第二个元素的第二个字符o