深入理解 C 指针阅读笔记 -- 第五章
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 指针阅读笔记 -- 第五章的更多相关文章
- 深入理解 C 指针阅读笔记 -- 第六章
Chapter6.h #ifndef __CHAPTER_6_ #define __CHAPTER_6_ /*<深入理解C指针>学习笔记 -- 第六章*/ typedef struct _ ...
- 深入理解 C 指针阅读笔记 -- 第二章
Chapter2.h #ifndef __CHAPTER_2_ #define __CHAPTER_2_ /*<深入理解C指针>学习笔记 -- 第二章*/ /* 内存泄露的两种形式 1.忘 ...
- 《图解HTTP》阅读笔记-第五章-web服务器
第五章.与HTTP协助的web服务器单台虚拟主机实现多个域名可以用单台物理主机运行多台虚拟主机,这些虚拟主机的IP相同,而虚拟主机有可以寄存多个不同主机名和域名的web网站,所以要保证发送HTTP ...
- 《Interest Rate Risk Modeling》阅读笔记——第五章:久期向量模型
目录 第五章:久期向量模型 思维导图 久期向量的推导 久期向量 广义久期向量 一些想法 第五章:久期向量模型 思维导图 久期向量的推导 \[ V_0 = \sum_{t=t_1}^{t_n} CF_t ...
- Hadoop阅读笔记(五)——重返Hadoop目录结构
常言道:男人是视觉动物.我觉得不完全对,我的理解是范围再扩大点,不管男人女人都是视觉动物.某些场合(比如面试.初次见面等),别人没有那么多的闲暇时间听你诉说过往以塑立一个关于你的完整模型.所以,第一眼 ...
- 《Linux内核设计与实现》读书笔记——第五章
<Linux内核设计与实现>读书笔记--第五章 标签(空格分隔): 20135321余佳源 第五章 系统调用 操作系统中,内核提供了用户进程与内核进行交互的一组接口.这些接口让应用程序受限 ...
- Android群英传笔记——第五章:Android Scroll分析
Android群英传笔记--第五章:Android Scroll分析 滑动事件算是Android比较常用的效果了,而且滑动事件他本身也是有许多的知识点,今天,我们就一起来耍耍Scroll吧 一.滑动效 ...
- 《Linux内核设计与实现》第四周读书笔记——第五章
<Linux内核设计与实现>第四周读书笔记--第五章 20135301张忻 估算学习时间:共1.5小时 读书:1.0 代码:0 作业:0 博客:0.5 实际学习时间:共2.0小时 读书:1 ...
- Programming Entity Framework-dbContext 学习笔记第五章
### Programming Entity Framework-dbContext 学习笔记 第五章 将图表添加到Context中的方式及容易出现的错误 方法 结果 警告 Add Root 图标中的 ...
随机推荐
- CentOS6.5下nginx-1.8.1.tar.gz的单节点搭建(图文详解)
不多说,直接上干货! [hadoop@djt002 local]$ su root Password: [root@djt002 local]# ll total drwxr-xr-x. root r ...
- hihoCoder挑战赛32
Rikka with Sequence V 构造 #pragma comment(linker, "/STACK:102400000,102400000") #include< ...
- 洛谷P1208 [USACO1.3]混合牛奶 Mixing Milk(贪心)
题目描述 由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要.帮助Marry乳业找到最优的牛奶采购方案. Marry乳业从一些奶农手中采购牛奶,并且每一位奶农为乳制品加工企业提供的价格是 ...
- deepin下jdk和tomcat的安装教程
在deepin上安装java是真的心累啊,照着网上的教程弄,结果一团糟.好不容易折腾成功了,记录下来. 1.下载jdk 首先我们要知道,用sudo 类似命令下载的jdk,是open的jdk,是开源的, ...
- android黑科技系列——微信抢红包插件原理解析和开发实现
一.前言 自从几年前微信添加抢红包的功能,微信的电商之旅算是正式开始正式火爆起来.但是作为Android开发者来说,我们在抢红包的同时意识到了很多问题,就是手动去抢红包的速度慢了,当然这些有很多原因导 ...
- 6) 十分钟学会android--Activity的生命周期之启动与销毁
当用户导航.退出和返回您的应用时,应用中的 Activity 实例将在其生命周期中转换不同状态. 例如,当您的Activity初次开始时,它将出现在系统前台并接收用户焦点. 在这个过程中,Androi ...
- 百度map API
1.做demo用的 http://developer.baidu.com/map/jsdemo.htm demo代码(外部使用的话需要提供密钥): <!DOCTYPE html> < ...
- Kettle通用数据贴源作业设计
本设计基于以下需求提出 1. 快速接入数据源表(贴源/落地) 2. 无须给单独表开发转换/作业 3. 动态生成数据源连接, 表字段等信息(预先保存在数据仓库中) 本设计所需条件 1. 数据源为关系型数 ...
- C#自定义控件实现控件随窗口大小改变
1.新建用户控件,取名MyForm. 2.将默认的UserControl改成Form 3.在类中添加以下代码 private float X, Y; //获得控件的长度.宽度.位置.字体大小的数据 p ...
- 关于dlg和pro的问题
微软链接:http://technet.microsoft.com/zh-cn/subscriptions/bb983387.aspx CDialogEx::CDialogEx 构造 CDialogE ...