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";
else
return "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 _ ...

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

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

  3. 《图解HTTP》阅读笔记-第五章-web服务器

      第五章.与HTTP协助的web服务器单台虚拟主机实现多个域名可以用单台物理主机运行多台虚拟主机,这些虚拟主机的IP相同,而虚拟主机有可以寄存多个不同主机名和域名的web网站,所以要保证发送HTTP ...

  4. 《Interest Rate Risk Modeling》阅读笔记——第五章:久期向量模型

    目录 第五章:久期向量模型 思维导图 久期向量的推导 久期向量 广义久期向量 一些想法 第五章:久期向量模型 思维导图 久期向量的推导 \[ V_0 = \sum_{t=t_1}^{t_n} CF_t ...

  5. Hadoop阅读笔记(五)——重返Hadoop目录结构

    常言道:男人是视觉动物.我觉得不完全对,我的理解是范围再扩大点,不管男人女人都是视觉动物.某些场合(比如面试.初次见面等),别人没有那么多的闲暇时间听你诉说过往以塑立一个关于你的完整模型.所以,第一眼 ...

  6. 《Linux内核设计与实现》读书笔记——第五章

    <Linux内核设计与实现>读书笔记--第五章 标签(空格分隔): 20135321余佳源 第五章 系统调用 操作系统中,内核提供了用户进程与内核进行交互的一组接口.这些接口让应用程序受限 ...

  7. Android群英传笔记——第五章:Android Scroll分析

    Android群英传笔记--第五章:Android Scroll分析 滑动事件算是Android比较常用的效果了,而且滑动事件他本身也是有许多的知识点,今天,我们就一起来耍耍Scroll吧 一.滑动效 ...

  8. 《Linux内核设计与实现》第四周读书笔记——第五章

    <Linux内核设计与实现>第四周读书笔记--第五章 20135301张忻 估算学习时间:共1.5小时 读书:1.0 代码:0 作业:0 博客:0.5 实际学习时间:共2.0小时 读书:1 ...

  9. Programming Entity Framework-dbContext 学习笔记第五章

    ### Programming Entity Framework-dbContext 学习笔记 第五章 将图表添加到Context中的方式及容易出现的错误 方法 结果 警告 Add Root 图标中的 ...

随机推荐

  1. linux系统在线搭建禅道

    1.先安装wget:yum -y install wget 2.下载安装禅道:[root@zhaowen ~]# wget http://dl.cnezsoft.com/zentao/9.0.1/Ze ...

  2. 修改python的pip下载源

    推荐两个源: 豆瓣:http://pypi.douban.com/simple/ 清华:https://pypi.tuna.tsinghua.edu.cn/simple 使用方法有两种,一种为临时使用 ...

  3. 从谷歌官网下载android 6.0源码、编译并刷入nexus 6p手机

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/fuchaosz/article/details/52473660 1 前言 经过一周的奋战,终于从谷 ...

  4. Nginx介绍及知识点(摘抄)

    正向代理是把自己的网络环境切换成代理的网络 反向代理是代理机器返回给我要我的资源 本文借鉴参考于http://tengine.taobao.org/book/chapter_02.html. 属于纯干 ...

  5. LeetCode 75. Sort Colors (python一次遍历,模拟三路快排)

    LeetCode 75. Sort Colors (python一次遍历,模拟三路快排) 题目分析: 本题需要实现数字只包含0,1,2的排序,并且要求一次遍历. 由于只用把数字隔离开,很容易想到快排的 ...

  6. WPF自定义动画控件 风机

      一:创建WPF项目 二:在项目下添加文件Themes,在此文件下添加新项 ”资源词典“取名为 Generic.xaml  注意大小写,之前遇到因为大小写不对应,导致出错的情况Generic.xam ...

  7. (转)Bootstrap3 概述

    http://blog.csdn.net/duruiqi_fx/article/details/53285607 注意:HTML5 文档类型 Bootstrap 使用到的某些 HTML 元素和 CSS ...

  8. VC++6.0进行数字图像处理的步骤以及遇到的问题

    1) 2) 3) 添加CDIB类时,如果没有你要选的那个类,可以先随便选个基类继承,然后自己在代码里把基类修改成要继承的,把一些消息映射的注释掉就可以了,这样的话在建立类向导里也可以找到新建的类. / ...

  9. javascript事件列表解说

    javascript事件列表解说 事件 浏览器支持 解说 一般事件 onclick IE3.N2 鼠标点击时触发此事件 ondblclick IE4.N4 鼠标双击时触发此事件 onmousedown ...

  10. 通过js 实现 向页面插入js代码并生效,和页面postMessage通讯

       此文章针对已经搭建好jenkins和会使用iconfont图标库而写. 主要目标就是在不通过更改html文件,完成页面交互图标信息,因为美工最多可以上传代码并且自动发布,并不会在Html中加入我 ...