已采纳回答 / onemoo
p是指针,且不是const指针,也就是说你可以更改p的指向,让p指向其他int变量。x和y是两个不相关的变量,一开始时p是指向x的。p=&y; 这一语句你让p指向y这个变量,那么再*p得到就是y,与x完全没有关系了。C++是一门强类型的语言,变量的所有行为都与它的类型有关。p的类型声明为 int const *p ,这里的const修饰的是前面的int,也就是说,p所指的对象是const int的,那么*p得到的对象的类型也被当作是const int的,所以才不能被修改。这与p到底指向什么无关,...
2015-12-16
#include <string.h>
#include <iostream>
using namespace std;
int main(void)
{
//在堆中申请100个char类型的内存
char *str = new char[100];
//拷贝Hello C++字符串到分配的堆中的内存中
strcpy(*p, "Hello imooc");
//打印字符串
cout<<*p<<endl;
//释放内存
delete []p;
p=NULL;
return 0;
}
#include <iostream>
using namespace std;
int main(void)
{
//在堆中申请100个char类型的内存
char *str = new char[100];
//拷贝Hello C++字符串到分配的堆中的内存中
strcpy(*p, "Hello imooc");
//打印字符串
cout<<*p<<endl;
//释放内存
delete []p;
p=NULL;
return 0;
}
堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。
2015-12-10