前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基础知识 | 每日一面(68)

基础知识 | 每日一面(68)

作者头像
小林C语言
发布2020-04-02 17:30:41
2700
发布2020-04-02 17:30:41
举报

古代的剑客们与

对手相逢时,无

论对手多么强大,

明知不敌,也要亮出自己的剑!

读者:既然不能修改字符串常量, 为什么不把它们定义为字符常量的数

组?

小林:一个原因是太多的代码包含char *p = "Hello, world!";这样并不正确的语句。这样的语句要受诊断信息的困扰,但真正的问题却出

现在改变 p 所指目的的任何企图。

读者:“const char *p” 和 “char * const p” 有何区别?

小林:“const char *p” 声明了一个指向字符常量的指针, 因此不能改变它所指向的字符; “char * const p” 声明一个指向字符的指针常量, 就是说, 你不能修改指针。

读者:为什么我不能向接受 const char ** 的函数传入 char **?

小林:你可以向接受 const-T 的指针的地方传入T的指针。但是, 这个允许在带修饰的指针类型上轻微不匹配的规则却不能递归应用, 而只能用于最上层。如果你必须赋值或传递除了在最上层还有修饰符不匹配的指针, 你必须明确使用类型转换,不过, 通常需要使用这样的转换意味着还有转换所不能修复的深层次问题。

有时候,正是那些意想不到之人,成就了无人能成之事。

——图灵

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 C语言入门到精通 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档