当前位置: 首页 > news >正文

常量指针与指针常量习题(一)

已知const char * node="ABC";下列语句合法的是___.

A   node[2] = 'k';

B  *node[2]='k';

C  *node = "xyz";

D   node="xyz";

D

        这道题目考察了C语言中const char*指针的特性和使用规则。D选项是正确的,因为node是一个指向字符串常量的指针,可以修改指针指向的地址,让它指向新的字符串常量"xyz"。

        分析其他选项的错误原因:

                A错误:node[2]表示访问字符串的第3个字符'C',由于原字符串是常量,不能直接修改其中的字符。

B错误:node[2]是字符'C',而*node[2]试图将字符当作地址进行解引用操作,这是错误的语法。

C错误:*node表示对指针解引用,获取第一个字符'A',不能将一个字符串赋值给单个字符。

        需要注意的是:

  •  const char *node 表示node是一个指向常量字符的指针
  •  字符串常量本身是不可修改的
  •  但是可以修改指针node使其指向其他的字符串常量
  •  这就是为什么D选项node="xyz"是合法的操作

记忆技巧:

const与static的修饰技巧
如果const跟着的是类型修饰符,则修饰该符,否则修饰它前面的符。
例如:
const int a; const后面是int则表明a的值不能变。
const int* a; 
const后面是int则表明a的值不能变。
int const * a; const后面是*,则表面指针的指向不能变。
题目中
const char * node="ABC";表明char不能变,即“ABC”不能改变,但是指针的指向可以变。

http://www.dtcms.com/a/358489.html

相关文章:

  • Swift 解法详解:LeetCode 367《有效的完全平方数》
  • Notepad++使用技巧1
  • 2025-08-18面试题(nginx,mysql,zabbix为主)
  • C#正则表达式与用法
  • unity学习——视觉小说开发(二)
  • JsMind 常用配置项
  • Qt中的锁(1)
  • AFSIM仿真工具介绍与源码编译
  • Isaac Lab Newton 人形机器人强化学习 Sim2Real 训练与部署
  • uniapp监听物理返回按钮事件
  • 软考 系统架构设计师系列知识点之杂项集萃(136)
  • 将 Logits 得分转换为概率,如何计算
  • SRE命令行兵器谱之三:grep - 日志海洋中的“精确制导”
  • JavaWeb前端06(ElementPlus快速构建网页)
  • IDM手机端,速度能提高6倍!
  • 消息队列核心技术解析与应用场景
  • JAVA EE初阶 4:文件操作和IO
  • 使用 SVM(支持向量机)进行图像分类:从读取图像到训练与分类的完整流程
  • Python API接口实战指南:从入门到精通
  • HarmonyOS三方库的使用
  • Java SpringAI应用开发面试全流程解析:RAG、流式推理与企业落地
  • 【Java工程师面试全攻略】Day13:云原生架构与Service Mesh深度解析
  • 防火墙技术(二):安全区域
  • 【Linux】系统部分——软硬链接动静态库的使用
  • Tomcat 企业级运维实战系列(四):Tomcat 企业级监控
  • 每日Java并发面试系列(5):基础篇(线程池的核心原理是什么、线程池大小设置为多少更合适、线程池哪几种类型?ThreadLocal为什么会导致内存泄漏?)
  • Tomcat 企业级运维实战系列(三):Tomcat 配置解析与集群化部署
  • Qt实战:如何打开摄像头并实现视频的实时预览
  • 生成式 AI 重构内容生产:效率提升背后的创作版权边界争议
  • react虚拟列表实现及原理