1:当指针所指向的内存被销毁时,该区域不可复用.若有指针指向该区域,则需要将该指针置为空值(NULL)或者指向未被销毁的内存. 内存销毁实质上是系统判定该内存不是变成人员正常使用的空间,系统也回将它们分配给别的任务.若擅自使用被销毁内存的指针更改该内存的数据,很可能会造成意向不到的后果. 代码实例如下: // 5.13.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> using std::cou…
1:正确的步骤应该是如下代码所示: // 5.15.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> void swap(int* a,int* b) { int temp = *a; *a = *b; *b = temp; } int main() { int* pI =new int; *pI = ; ; swap(pI,&k); std::cout<<"*pI:…
1:当申请一块堆内存后,系统不会再程序执行时一句情况自动销毁它.若想释放该内存,则需要使用delete关键字.下面的代码中,可以看出堆和栈的不同.代码如下: // 5.12.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> using std::cout; using std::endl; int* newPointerGet(int* p1)//返回地址,参数也为地址 { ; p1 =new i…
1:引用传递参数与指针传递参数能达到同样的目的.指针传递参数也属于一种值传递,其传递的是指针变量的副本.如果使用指针的引用,就可以达到在函数体内改变指针地址的目的.运行代码如下: // 5.19.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> using std::cout; using std::endl; ;//静态全局变量 void getMax(int* &p)//指针的引用 {…
1:代码如下: // 5.14.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> using namespace std; int main() { float* pF = NULL; pF = new float; *pF = 4.321f; float f2 = 5.321f; cout<<"pF指向的地址:"<<pF<<endl; co…
1:有时在获得一定的信息之前,我们并不确定数组的大小.动态分配数组则可以使用变量作为数组的大小,使数组的大小符合我们的要求. 2:科普一下斐波纳契数列:斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368........这个数列从第3项开始,每一项都等于前两项之和. 代码如下: // 6.18.cpp : 定义控制…
1:代码如下: // 6.13.cpp : 定义控制台应用程序的入口点. // #include"stdafx.h" #include<iostream> using namespace std; void main() { ][]; ];//指向int数组的指针,也可以用int *b; ]; //储存指针的数组,最多只能储存4个指针 int *p; p = a[]; //a[0]是int型指针,同样a[1] a[2] a[3]都是int型指针 b = a; //获得a[0…
1:父类和子类中都有构造函数和析构函数,那么子类对象在创建时是父类先进行构造还是子类先进行构造?同样,在子类对象释放时,是父类先进行释放,还是子类先进行释放?这都是有先后顺序的.答案是当从父类派生一个子类并声明一个子类的对象时,它将先调用父类的构造函数,然后调用当前类的构造函数来创建对象:在释放之类对象时,先调用的是当前类的析构函数,然后是父类的析构函数. 2:实例代码如下: // 8.2.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #inc…
1:曾经介绍过string类型的数据,它是C++标准模版库提供的一个类.string类支持使用加号“+”连接两个string对象.但是使用两个string对象相减确实非法的,其中的原理就是C++所提供类中重载运算符的功能.在string类中定义了运算符“+”和“+=”两个符号的使用方法,这种使用方法的实质是一种成员函数. 关键字operator是专门实现类运算符重载的关键字.在类成员中,定义一个这样形式的函数: 返回值类型 operator 重载运算符(参数列表) 以box类为例,我们可以将加号…
1:当建立一个对象之后,如果不希望它的任何数据发生改变,可以将其直接声明为const对象,例如: const 类名 对象名 const对象必须初始化.我们可以调用它的数据和函数,但是不可以对他们进行修改.除此之外,const对象的this指针也还是常量.我们知道,成员函数在自己的函数体内自动为成员变量加上this指针.如何使这些内存指针就转化为const呢?仍然需要const关键字,函数声明形式如下: 返回类型 函数名(参数列表) const: 即在函数头结尾加上const.只能对类中的函数做如…