1. C 字符串的类型

"hello"即为 C 风格字符串;

  • 使用 typeid 关键字查看

    std::cout << typeid("hello").name() << std::endl;
    

    输出为:
    char const [6]:长度为6(\0)的字符数组

2. 以’\0’结尾

char str[10];
strcpy(str, "0123456789");// "0123456789":长度其实是11// 所以,拷贝不会成功
char str[10] = "hello";// str[0] == h// ...// str[4] == o// str[5] - str[9] == \0

3. 常量字符串

为了节省内存,C/C++ 把常量字符串放到单独的一个内存区域。

  • 当几个指针赋给相同的常量字符串时,它们实际上会指向相同的内存地址;

  • 用常量内存初始化数组,情况会略有不同。

char str1[] = "hello world";
char str2[] = "hello world";// str1 ≠ str2
char* str3 = "hello world";
char* str4 = "hello world";// str3 == str4

str1 和 str2 是两个字符串数组(char[]),我们会为它们分配两个长度为 12 个字节的空间,并把"hello world"的内容分别复制到数组中去。显然这是两个初始地址不同的数组,因此 str1 和 str2 的值也不相同。

str3 和 str4 是两个指针,我们无需为它们分配内存以存储字符串的内容,而只需要把它们指向“hello world”在内存中的地址就可以了。由于"hello world"是常量字符串,它在内存中只有一个拷贝。

[面试] C/C++语法(三)—— 字符串相关推荐

  1. python语法(三)字符串

    字符串 1.字符串的定义 2.转义字符 3.格式化输出 4.输入 5.字符串的切片 6.字符串函数 1.字符串的定义 -单引号定义:'123' -双引号定义:"456987" 什么 ...

  2. 面试被问了三次的http状态码到底有什么

    面试被问了三次的http状态码到底有什么 想想很多人面试都会有被问到http的状态码的经历,我也是经历了三面,每次都在问这个问题.今天就来细致的讨论一下HTTP的状态码,如有不足,欢迎留言交流: HT ...

  3. (79)FPGA如何处理跨时钟域问题-面试必问(三)(第16天)

    (79)FPGA如何处理跨时钟域问题-面试必问(三)(第16天) 1 文章目录 1)文章目录 2)FPGA初级课程介绍 3)FPGA初级课程架构 4)FPGA如何处理跨时钟域问题-面试必问(三)(第1 ...

  4. 互联网面试知识点总结(三)- 计算机网络篇

    互联网面试知识点总结(三)- 计算机网络篇 ******************************* 概 述 ******************************* 一. OSI七层模型 ...

  5. 前端面试查漏补缺--(三) 跨域及常见解决办法

    前言 本系列最开始是为了自己面试准备的.后来发现整理越来越多,差不多有十二万字符,最后决定还是分享出来给大家. 为了分享整理出来,花费了自己大量的时间,起码是只自己用的三倍时间.如果喜欢的话,欢迎收藏 ...

  6. 【Groovy】Groovy 方法调用 ( 字符串切割 | 使用 Java 语法切割字符串 | 使用 Groovy 语法切割字符串直接为变量赋值 | 数组赋值给变量 变量个数小于等于数组长度 )

    文章目录 一.字符串切割 1.使用 Java 语法切割字符串 2.使用 Groovy 语法切割字符串直接为变量赋值 3.数组赋值给变量 变量个数小于等于数组长度 二.完整代码示例 一.字符串切割 在 ...

  7. [Python学习] 专题三.字符串的基础知识

            在Python中最重要的数据类型包括字符串.列表.元组和字典等.该篇主要讲述Python的字符串基础知识. 一.字符串基础         字符串指一有序的字符序列集合,用单引号.双引 ...

  8. JAVA面试常考系列三

    转载自 JAVA面试常考系列三 题目一 什么是迭代器(Iterator)? 迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中确定的地址.迭 ...

  9. Pocket英语语法---三、英语动词的特点是什么

    Pocket英语语法---三.英语动词的特点是什么 一.总结 一句话总结:即表示时间(时态),又表示人数(单复数) 1.第十七讲,不定量表达法? 1.a few为肯定含义几个,few为否定含义没几个, ...

  10. 三分钟计算机自我介绍面试,三分钟面试自我介绍【三篇】

    [导语]自我介绍是向别人展示你自己的一个重要手段,自我介绍好不好,甚至直接关系到你给别人的第一印象的好坏及以后交往的顺利与否.同时,也是认识自我的手段.以下是无忧考网整理的三分钟面试自我介绍,欢迎阅读 ...

最新文章

  1. java通过ftp方式上传_通过FTP以Java方式上传文件
  2. C#函数实现的小功能
  3. golang变量的数据类型:整型及其使用细节
  4. Bloom Filter(布隆过滤器)的概念和原理
  5. Asp.net页面事件引发后台程序处理原理【转】
  6. SWIFT4.0学习01 - 函数的命名、调用以及注意事项
  7. Crontab 计划任务
  8. win8系统intellij输入中文问题
  9. PHP-利用GD库新建图像
  10. 更换主板后 Win10 账户密钥集不存在 0x80090016问题解决
  11. 学术篇 | 不同需求的认知控制揭示了语义记忆和情景记忆提取共享的神经机制
  12. 一招教你解决Win10屏幕模糊问题
  13. 嵌入式岗位Makefile常见面试题(1)
  14. 【tf.keras】官方教程一 Keras overview
  15. cadence xbl封装转AD
  16. arm GIC介绍之一
  17. 网页版简易计算器(仅加减乘除)
  18. 打开excel提示损坏的映像的解决办法
  19. flex 垂直方向 两端对齐
  20. 亲历华为手机丢失通过定位找回

热门文章

  1. 在开启kerberos 后,hbase存在数据命名空间的问题(解决方案)
  2. redis的发布和订阅模式
  3. Python数据结构实战——哈希表中的冲突处理(Collision Handling In Hash Table)
  4. tenrrt编译出错
  5. tensorflow保存数据为.pb格式和加载.pb文件(转)
  6. 有谁做过在C# winform里,显示3D max文件的呢?请赐教了。
  7. Cocos Creator 组件-画笔
  8. 道理都明白,为什么很难做到
  9. [UVALive 3983] Robotruck
  10. linux下命令行操作快捷键及技巧