首页 > 试题广场 >

代码执行之后ptr指向的内容是?

[单选题]
以下代码
char *ptr; 
char myString[] = "abcdefg"; 
ptr = myString; 
ptr += 5;
代码执行之后ptr指向的内容是?
  • Compiler error
  • fg
  • efg
  • defg
如果代码是myString+=5,就应该选择A,因为myString指向的是一个常量字符串地址
发表于 2018-05-16 12:54:07 回复(4)
        a    b    c    d    e    f    g
ptr  +0  +1 +2 +3  +4  +5  +6
此时指向'f'
发表于 2020-08-26 14:00:30 回复(1)
B
ptr = myString     ptr 指向字符串  abcdefg  的起始位置
ptr += 5           ptr   向前移动五个 指向 f
发表于 2015-11-08 20:20:45 回复(0)
这个题应该指向的是fg吧。
发表于 2018-12-04 20:46:23 回复(2)
ptr指向的是f,但是如果输出的话会得到fg,因为输出是从字符串"fg"的首地址开始输出。
发表于 2019-04-29 15:32:38 回复(1)
直接输出ptr结果是fg,但输出*(ptr+5)是f,故指向是‘f’
发表于 2021-09-16 18:22:25 回复(0)
我的理解是:ptr的首地址是a,ptr+5表示从第二个元素开始+5,所以指向f处。不知道这样的理解对不对,请帮忙指正一下,谢谢。
发表于 2017-03-21 14:55:06 回复(1)
如果代码是myString+=5,就应该选择A,因为myString指向的是一个常量字符串地址 ptr指向的是f,但是如果输出的话会得到fg,因为输出是从字符串"fg"的首地址开始输出
编辑于 2020-02-25 11:46:30 回复(0)
ptr = myString     ptr 指向字符串  abcdefg  的起始位置
ptr += 5           ptr   向前移动五个 指向 f,即fg
发表于 2016-06-23 10:28:31 回复(0)
不会产生编译错误,反过来赋值才会
发表于 2016-02-25 10:20:16 回复(0)
  1. 首先,我们声明了一个字符指针ptr和一个字符数组myString,其中myString包含字符串 "abcdefg"。

  2. 接下来,我们将myString的地址赋值给ptr,这样ptr指向了myString的第一个字符 'a'。

  3. 然后,我们使用ptr += 5将指针ptr向后移动了五个字符位置。由于每个字符占据一个字节的内存空间,所以ptr现在指向了原始字符串中的第六个字符 'f'。

  4. 最后,我们得到了指针ptr所指向的内容,即从当前位置开始的字符串部分。在这种情况下,它指向了字符串 "fg"

发表于 2023-10-31 10:48:39 回复(0)
最初ptr指向的是第一个元素的地址,+5后应该是第六个元素地址,所以是指向f,但如果求出此时的ptr,输出结果应为fg
发表于 2021-01-04 10:04:50 回复(0)
内存: char myString[] = "abcdefg"; 创建了一个字符数组,存储在栈上,包含字符串内容(包括终止符)。 char *myString = "abcdefg"; 创建了一个指针,指向静态存储区中的字符串字面量。
发表于 2025-06-29 13:12:20 回复(0)
其实应该是指向‘f’,但是如果输出的话是输出的fg   是这个意思吧
发表于 2024-12-24 15:32:41 回复(0)
ptr是数组首地址
发表于 2023-07-22 16:09:10 回复(0)
指针指向单个字符
发表于 2021-03-13 16:13:16 回复(0)
int和char类型的指针的用法
发表于 2021-03-09 15:08:40 回复(1)
..
发表于 2019-08-06 20:13:10 回复(0)
ptr指向的内容 cout<
发表于 2019-04-22 15:49:57 回复(0)
答案就不对,运行完结果是fg.
发表于 2019-04-07 18:24:48 回复(0)