《C和C++代码精粹》——2.15 小结

简介:

本节书摘来自异步社区出版社《C和C++代码精粹》一书中的第2章,第2.15节,作者: 【美】Chuck Allison,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.15 小结

C和C++代码精粹
C和C++仅仅与那些使用它们的人一样危险。
指针是地址。
可以将任何一个指针赋值成void*。
注意区分一个const指针和一个指向const的指针。
p±n = =(char)p±n sizeof (*p)。
p-q = = ±n 。
*(a+i) = = a [i]。
除非在sizeof和&的上下文中,否则一个数组名即是指向它第一个元素的指针。
没有多维数组,只有数组的数组。
仅是指针的存在并不要求它所引用的类型的实现的有效性(这是一个不完全类型)。
如果理解了这些概念,你就正在逐渐地成为一名可信赖的C++程序员。现在去告诉你的老板,她可以指派你去编写真正的程序。

练习答案
练习2.1

已知如下声明:

int a[ ] = { 10, 15, 4, 25, 3, -4 };
int *p = &a[ 2 ];

下面表达式的结果是什么?

a.  *(p+1)      25
b.  p[-1]        15
c.  p-a           2
d.  a[*p++ ]      3
e.  *(a+a[ 2 ]) 3

练习2.2

下面的语句通过一系列指针表达式修改字符串s,当顺序执行时每个表达式重新得到什么字符,最后的结果是什么?

char s[ ] = "desolate",*p = s;
*p++  = = d;
*(p++)= = e;
(*p)++= = s;
*++p  = = o;
*(++p)= = l;
++*p  = = m;
++(*p )= = n;
strcmp(s,"detonate") = = 0;

练习2.3

image

其中十六进制值是相对于a地址偏移量。

0x0f0  = = 240
0x140  = = 320
0x154  = = 340
0x158  = = 344

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

相关文章
|
6天前
|
C语言 C++ 开发者
深入探索C++:特性、代码实践及流程图解析
深入探索C++:特性、代码实践及流程图解析
|
2月前
|
自然语言处理 算法 前端开发
C++与Doxygen:精通代码文档化之道
C++与Doxygen:精通代码文档化之道
53 0
|
28天前
|
IDE Java Linux
【CMake】CMake构建C++代码(一)
【CMake】CMake构建C++代码(一)
|
29天前
|
C++ 计算机视觉 Windows
【C++】由于找不到xxx.dll,无法继续执行代码,重新安装程序可能会解决此问题。(解决办法)
【C++】由于找不到xxx.dll,无法继续执行代码,重新安装程序可能会解决此问题。(解决办法)
|
20小时前
|
C++
【期末不挂科-C++考前速过系列P6】大二C++实验作业-模板(4道代码题)【解析,注释】
【期末不挂科-C++考前速过系列P6】大二C++实验作业-模板(4道代码题)【解析,注释】
【期末不挂科-C++考前速过系列P6】大二C++实验作业-模板(4道代码题)【解析,注释】
|
20小时前
|
Serverless C++ 容器
【期末不挂科-C++考前速过系列P5】大二C++实验作业-多态性(3道代码题)【解析,注释】
【期末不挂科-C++考前速过系列P5】大二C++实验作业-多态性(3道代码题)【解析,注释】
|
20小时前
|
C++ 芯片
【期末不挂科-C++考前速过系列P4】大二C++实验作业-继承和派生(3道代码题)【解析,注释】
【期末不挂科-C++考前速过系列P4】大二C++实验作业-继承和派生(3道代码题)【解析,注释】
|
20小时前
|
编译器 C++
【期末不挂科-C++考前速过系列P3】大二C++第3次过程考核(20道选择题&12道判断题&2道代码题)【解析,注释】
【期末不挂科-C++考前速过系列P3】大二C++第3次过程考核(20道选择题&12道判断题&2道代码题)【解析,注释】
|
20小时前
|
C++
【期末不挂科-C++考前速过系列P2】大二C++第2次过程考核(20道选择题&10道判断题&3道代码题)【解析,注释】
【期末不挂科-C++考前速过系列P2】大二C++第2次过程考核(20道选择题&10道判断题&3道代码题)【解析,注释】
|
1天前
|
存储 数据安全/隐私保护 C++
【期末不挂科-C++考前速过系列P1】大二C++第1次过程考核(3道简述题&7道代码题)【解析,注释】
【期末不挂科-C++考前速过系列P1】大二C++第1次过程考核(3道简述题&7道代码题)【解析,注释】