#include <string.h>
#include <iostream>
using namespace std;
int main(void)
{
//在堆中申请100个char类型的内存
char *str = new char[100];
//拷贝Hello C++字符串到分配的堆中的内存中
strcpy(*str, "Hello imooc");
//打印字符串
cout<<*str<<<endl;
//释放内存
delete str;
str = NULL;
return 0;
}
#include <iostream>
using namespace std;
int main(void)
{
//在堆中申请100个char类型的内存
char *str = new char[100];
//拷贝Hello C++字符串到分配的堆中的内存中
strcpy(*str, "Hello imooc");
//打印字符串
cout<<*str<<<endl;
//释放内存
delete str;
str = NULL;
return 0;
}
int *p = new int(1);
delete p;
p = NULL;
int *p = new int[1];
delete []p;
p = NULL;
delete p;
p = NULL;
int *p = new int[1];
delete []p;
p = NULL;
2017-08-01
#include <iostream>
using namespace std;
int main(void)
{
int x = 3;
//定义引用,y是x的引用
int &y = x;
//打印x和y的值
cout<<x<<endl;
cout<<y<<endl;
//修改y的值
y = 1;
//再次打印x和y的值
cout<<x<<endl;
cout<<y<<endl;
return 0;
}
using namespace std;
int main(void)
{
int x = 3;
//定义引用,y是x的引用
int &y = x;
//打印x和y的值
cout<<x<<endl;
cout<<y<<endl;
//修改y的值
y = 1;
//再次打印x和y的值
cout<<x<<endl;
cout<<y<<endl;
return 0;
}
最赞回答 / Mer1997
这么说吧 C语言中的"*"和C++中的"&"在函数中的使用一般都是为了改变 变量的值 ,但是”*“在实质上依旧是单向传值 只是函数中的指针形参与实参具有相同的内存地址,从而间接改变内存中的内容,因此在函数中改变形参的地址是不会对实参有影响的 而C++中的”&“则是相当于给变量起别名,因此在函数中操作的”形参“与实参实质上是共用一块内存空间的,对”形参“做的任何改变都能在实参上得到体现
2017-07-30
int main(void)
{
int numarr[3] = {3, 8, 6};
cout<<getmax(numarr,3) <<endl;
cout<<getmax(numarr[1],numarr[2])<<endl; //应该把0换成1才是对的
system("pause");
return 0;
}
{
int numarr[3] = {3, 8, 6};
cout<<getmax(numarr,3) <<endl;
cout<<getmax(numarr[1],numarr[2])<<endl; //应该把0换成1才是对的
system("pause");
return 0;
}
不能将一个限制多权限小的数据(常量)定义出一个限制比它少权限比它大的使用方式(变量的指针或引用)。这样就可能会使新定义的使用方式做超越原本数据限制的行为(赋值)。计算机就会报错。
2017-07-22