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. s-sar命令(System Activity Reporter系统活动情况报告)
  2. 网络编程--connect()、listen()、accept()
  3. 51单片机系列——基础指令
  4. .NET Core中Object Pool的简单使用
  5. scrapy 去重策略修改
  6. 烟台大学计算机学院宋宜斌教授,宋宜斌
  7. java.lang.IllegalArgumentException at java.sql.Date.getHours
  8. 智力问答选择题_智力问答:智力题大全及答案
  9. Vue中阿里图标的使用
  10. java倍数增长计算公式,增长倍数计算公式是什么
  11. 计算机网络(2.11)物理层- 宽带接入技术-光纤同轴混合网 (HFC网)
  12. 【工控老马】MODBUS通讯协议及编程详解
  13. IE8 访问https安全证书错误;导航阻止 解决办法 《转》
  14. android图片:多选相册的实现
  15. Chrome浏览器安装本地插件
  16. CentOS7-安装防火墙
  17. 为什么曾经优秀的老员工被辞退了?
  18. 【BUUCTF】Crypto题解
  19. 解决myeclipse破解运行后出现的security alert:integrity check error
  20. 数据化运营chapter3_code--数据处理

热门文章

  1. 2005 mysql连接字符串_怎么用c#远程连接sql server2005,连接字符串怎么写
  2. ide循环执行用例 selenium_使用Selenium测试Web界面时使用循环控制功能
  3. offset函数的高级用法_数据验证(数据有效性)结合Offset函数 的综合用法
  4. 两个实际任务掌握图像分类【Keras】(转)
  5. TensorFlow 中的 tf.train.exponential_decay() 指数衰减法
  6. lvm硬盘管理及LVM扩容
  7. 【Linux 命令】- tail命令
  8. BZOJ 4011 HNOI2015 落忆枫音
  9. js制作带有遮罩弹出层实现登录小窗口
  10. android 选择多选图片