关于C++初级读本第五版中指针的一些问题

Some questions about pointers in C++ Primer 5th Edition

本文关键字:指针 问题 五版 初级读本 C++ 关于      更新时间:2023-10-16

我是C++的新手,正在尝试学习指针的概念。以下示例来自C++Primer第5版。我对声明有几个问题:

1) 如果pi3是在块外定义的,会发生什么?

2) C++中的块是什么?

3) 未初始化的pi3表现出什么样的行为?

int *pi3; // if pi3 is defined inside a block, pi3 is uninitialized

如果在任何块之外定义一个变量(如pi3),它将是一个全局变量。

在C++中,一个块定义了一个静态作用域。块中声明的任何变量仅在该块中可用;它们在区块外将不可用。

一个未初始化的变量将有一个不确定的值——它可以是任何值!在指针的情况下,它可以指向任何地方。。。

通常,未初始化变量中的数据是"事先写入该空间的任何数据,因为我们太懒了,无法擦除它。"事实证明,之所以这么懒是有原因的:如果定义了一个大的局部变量(如长数组),自动擦除数据可能会对性能造成真正的影响。因此,默认情况是保持未初始化状态。