Chapter5.h

#ifndef      __CHAPTER_5_
#define     __CHAPTER_5_/*《深入理解C指针》学习笔记 -- 第五章*//*不应该修改的字符串就应该用 const char* 去修饰*/
size_t __strlen_test(const char*);/*返回字符串的几种方法*/
char* __return_str__test();#endif

Chapter5.cpp

#include "Chapter5.h"
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>size_t __strlen_test(const char* pstr)
{size_t length = 0;/*由于参数用const去修饰,所以,在函数中,我们不能去改变指针指向的字符串,否则,会产生编译错误*///   *pstr = 'a';         这里编译错误while (*pstr++)++length;return length;
}/*返回字符串的几种方法*/
char* __return_str__test()
{/*第一种方法返回一个字面值常量,因为这是一个字面值常量,它存储在常量存储区中,当程序终止时,才会消失,所以,返回它的地址不会出现问题*//*srand(time(NULL));int num = rand() % 2;if (num % 2 == 0)return "even number";elsereturn "odd number";*//*第二种方法返回一个动态内存指向的地址,因为这个地址是在堆中分配的,所以,只有当程序员自己释放这块内存时,它才会消失,所以,返回它的地址不会出现问题*//*char* p_str = (char*)malloc(sizeof(char) * 16);strcpy(p_str, "DLUTBruceZhang");return p_str;*//*第三种方法返回一个静态字符串,这个字符串存储在静态存储区,即全局变量存储的地方,只有当程序结束时,这块内存才会消失,所以,返回它的地址不会出现问题*//*static char str[] = "DLUTBruceZhang";return str;*//*第四种方法首先,这是一个错误的方法它返回的是一个局部变量的地址,这块内存存储在栈中,当函数返回后,这块内存就会被别的值覆盖,即指向的地址存储的不是想要的值,我们在程序中是需要避免的*//*char __str[] = "DLUTBruceZhang";return __str;*/
}

深入理解 C 指针阅读笔记 -- 第五章相关推荐

  1. 深入理解 C 指针阅读笔记 -- 第六章

    Chapter6.h #ifndef __CHAPTER_6_ #define __CHAPTER_6_/*<深入理解C指针>学习笔记 -- 第六章*/typedef struct __p ...

  2. 深入理解 C 指针阅读笔记 -- 第四章

    Chapter4.h #ifndef __CHAPTER_4_ #define __CHAPTER_4_/*<深入理解C指针>学习笔记 -- 第四章*//*指针数组 -- 意思就是这是一个 ...

  3. 深入理解 C 指针阅读笔记 -- 第三章

    Chapter3.h #ifndef __CHAPTER_3_ #define __CHAPTER_3_/*<深入理解C指针>学习笔记 -- 第三章*//*它们都保存在栈中的什么位置?*/ ...

  4. 深入理解 C 指针阅读笔记 -- 第二章

    Chapter2.h #ifndef __CHAPTER_2_ #define __CHAPTER_2_/*<深入理解C指针>学习笔记 -- 第二章*//*内存泄露的两种形式1.忘记回收内 ...

  5. 深入理解 C 指针阅读笔记 -- 第一章

    上周末,我在图书馆看到了这本很薄的书 -- <深入理解 C 指针>       这本书中写的内容,个人感觉适合一个初学者,内容不是很难.我也读了下,对每一章都做了笔记,笔记都是用代码的形式 ...

  6. 【Coq学习】Formal Reasoning About Programs 阅读笔记第五章

    第五章 归纳关系与规则归纳 Inductive Relations and Rule Induction 类似于在第 2 章讨论过的归纳定义的集合或类型定义(inductive set or type ...

  7. js高级教程阅读笔记 第五章-引用类型(5.6)

    函数内部属性 函数中有两个特殊的对象. arguments:它包含了所有的参数,重要的是它的一个叫做callee的属性,用于指向拥有这个参数的函数.好处是什么呢 实例: function fa(num ...

  8. buc算法java实现,数据挖掘概念与技术(hanjiawei)阅读笔记--第五章(数据立方体技术)...

    BUC 1.BUC(Botom-Up Construction)概念 从顶点方体向下计算冰山立方体 计算稀疏冰山立方体的算法 基于先验性质进行剪枝 ### 2.算法计算 例A(a1,a2,a3),B( ...

  9. 《Go语言圣经》学习笔记 第五章函数

    <Go语言圣经>学习笔记 第五章 函数 目录 函数声明 递归 多返回值 匿名函数 可变参数 Deferred函数 Panic异常 Recover捕获异常 注:学习<Go语言圣经> ...

最新文章

  1. java读取本地文件_java 读取本地文件实例详解
  2. 扇区示意图计算机组成原理,计算机组成原理本.ppt
  3. python索引例子_Python实现带下标索引的遍历操作示例
  4. c# combobox集合数据不显示_VBA与数据库解决方案第9讲:如何打开数据库记录集合,并把所得的数据显示到工作表文件中...
  5. win10语音语言服务器,win10系统:朗读女语音库(发音人)安装方法说明
  6. 总用量的统计_每月公开使用量!广州市开启机制砂信息采集工作
  7. Python标准库中的random
  8. Spring Boot 揭秘与实战(二) 数据缓存篇 - Guava Cache
  9. 鹅厂员工平均月薪7万刷屏!公司每天赚9.5亿,养5.46万人
  10. 一文速学-时间序列分析算法之一次移动平均法和二次移动平均法详解+实例代码
  11. USB转52单片机下载串口的“转换芯片”MAX232与CH340G的区别
  12. Win10将某个软件/文件添加到开始屏幕(磁贴)
  13. Python中break语句和continue语句的用法
  14. vue生成二维码图片并且下载图片到本地
  15. 英语宾语从句 引导词的选择
  16. 知名搜索引擎网站收录提交入口
  17. IPv6静态路由设置
  18. 2010破局,联想笔记本用AMD芯
  19. TeraTerm-服务器访问和数据库链接写到批处理中-双击执行
  20. MOS管认识及选型的一点见解

热门文章

  1. java的HttpClient如何去支持无证书访问https
  2. nginx的一次安装与配置
  3. 一个通俗易懂的HMM例子
  4. SNF快速开发平台MVC-EasyQuery-拖拽生成SQL脚本
  5. wireshark从入门到精通(协议排错安全篇)3
  6. 演示:通过实验取证IP报文的各个字段
  7. Exchange2010配置实验(六)部署forefront到edge服务器
  8. 2019最具特色的web前端技术分享
  9. java笔记 -- GregorianCalendar和DateFormateSymbols 类方法
  10. Grub及MBR修复