一个题目:const char *P1=“hello“; char *const P2=“world“;下列操作合法的是

  • Post author:
  • Post category:其他


题目

给出以下定义

  • const char *P1=”hello”;
  • char *const P2=”world”;

以下哪些操作是合法的?

  • P1++;
  • P1[2]=’W’;
  • P2++;
  • P2[2]=’1′;

分析

P1和P2都是字符指针,所以字符串”hello”和”world”都是字符串常量,不能修改,所以操作2 4都不合法。

P2是指针常量,也就是说P2的地址是不能修改的,操作3:P2++不合法。

P1是常量指针,指针指向的内容是常量,不能通过其修改,但是指针本身可以修改,P1++合法。

所以,合法的是操作1。

知识点


从内存层面看char *p和char p[]的区别


C++兼容C语言的遗留问题探讨:char *p=“hello“;


指针常量和常量指针的区别【const int *和int const*和int* const】



版权声明:本文为qq_21989927原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。