专栏首页C语言入门到精通基础知识 | 每日一面(73)

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

古代的剑客们与

对手相逢时,无

论对手多么强大,

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

读者:a[3] = "abc"; 合法吗?它是什么意思?

小林:尽管只在极其有限的环境下有用, 可它在 ANSI C (可能也包括一些 ANSI 之前的系统) 中是合法的。它声明了一个长度为 3 的数组, 把它的三个字符初始化为’a’, ’b’ 和 ’c’, 但却没有通常的 ’\0’ 字符。因此该数组并不是一个真正的 C 字符串从而不能用在 strcpy, printf %s 等当中。多数时候, 你应该让编译器计算数组初始化的初始值个数, 在初始值 “abc” 中,计算得长度当然应该是 4。

读者:为什么我不能对 void* 指针进行运算?

小林:编译器不知道所指对象的大小。在作运算之前, 把指针转化为 char * 或你准备操作的其它指针类型。

读者:memcpy() 和 memmove() 有什么区别?

小林:如果源和目的参数有重叠, memmove() 提供有保证的行为。而 memcpy()则不能提供这样的保证, 因此可以实现得更加有效率。如果有疑问, 最好使用memmove()。

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

——图灵

本文分享自微信公众号 - C语言入门到精通(gh_780327809188),作者:闫小林

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 基础知识 | 每日一练(57)

    学生:如果 NULL 的值改变了, 比如在使用非零内部空指针的机器上,难道用 NULL (而不是 0) 不是更好吗?

    闫小林
  • 基础知识 | 每日一练(102)

    士人有百折不回之真心,才有万变不穷之妙用。立业建功,事事要从实地着脚,若少慕声闻,便成伪果;讲道修德,念念要从虚处立基,若稍计功效,便落尘情。 ...

    闫小林
  • 基础知识 | 每日一练(114)

    士人有百折不回之真心,才有万变不穷之妙用。立业建功,事事要从实地着脚,若少慕声闻,便成伪果;讲道修德,念念要从虚处立基,若稍计功效,便落尘情。 ...

    闫小林
  • firstElementChild、firstChild 、childNodes和children方法

    小胖
  • 机器学习概念总结笔记(四)

    KMeans聚类分析是一种静态数据分析方法,常被用于机器学习,模式识别,数据挖掘等领域。通常认为,聚类是一种无监督式的机器学习方法,它的过程是这样的:在未知样本...

    serena
  • 触摸屏的发展预判

    一、触摸屏的性能比较 工业触摸屏工作在与外界完全隔离的环境中,它不怕灰尘、水气和油污,可以用任何物体来触摸,比较适合工业控制领域使用。缺点是由于复合薄膜的外层采...

    机器人网
  • 马自达新车全面取消触摸屏,意外引得叫好声一片

    马自达表示,触摸屏不应该出现在车上——我们的新车2019款马自达 3,不用触摸屏。

    量子位
  • Python 面试中8个必考问题

    ? 翻译 everfighting 原文链接:https://www.toptal.com/python/interview-questions Q1、下...

    CDA数据分析师
  • Win下执行kettle的trans和job的批处理示例

    set panpath=C:\pdi-ce-5.4.0.1-130\data-integration set kpath=D:\03works\ZYWSPT\...

    用户5640963
  • 重启 docker 服务、Docker 重启

    微风-- 轻许--

扫码关注云+社区

领取腾讯云代金券