#include <string.h>
#include <iostream>
using namespace std;
int main(void)
{
//在堆中申請100個char類型的內(nèi)存
char *str = new char[100];
//拷貝Hello C++字符串到分配的堆中的內(nèi)存中
strcpy(*str, "Hello imooc");
//打印字符串
cout<<*str<<<endl;
//釋放內(nèi)存
delete str;
str = NULL;
return 0;
}
#include <iostream>
using namespace std;
int main(void)
{
//在堆中申請100個char類型的內(nèi)存
char *str = new char[100];
//拷貝Hello C++字符串到分配的堆中的內(nèi)存中
strcpy(*str, "Hello imooc");
//打印字符串
cout<<*str<<<endl;
//釋放內(nèi)存
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++中的"&"在函數(shù)中的使用一般都是為了改變 變量的值 ,但是”*“在實質(zhì)上依舊是單向傳值 只是函數(shù)中的指針形參與實參具有相同的內(nèi)存地址,從而間接改變內(nèi)存中的內(nèi)容,因此在函數(shù)中改變形參的地址是不會對實參有影響的? 而C++中的”&“則是相當于給變量起別名,因此在函數(shù)中操作的”形參“與實參實質(zhì)上是共用一塊內(nèi)存空間的,對”形參“做的任何改變都能在實參上得到體現(xiàn)
2017-07-30
int main(void)
{
int numarr[3] = {3, 8, 6};
cout<<getmax(numarr,3) <<endl;
cout<<getmax(numarr[1],numarr[2])<<endl; //應(yīng)該把0換成1才是對的
system("pause");
return 0;
}
{
int numarr[3] = {3, 8, 6};
cout<<getmax(numarr,3) <<endl;
cout<<getmax(numarr[1],numarr[2])<<endl; //應(yīng)該把0換成1才是對的
system("pause");
return 0;
}
以前學(xué)過C語言,但是沒學(xué)過C++,所以一直覺得C++很難,現(xiàn)在接觸了之后,感覺其實還好。
2017-07-23
不能將一個限制多權(quán)限小的數(shù)據(jù)(常量)定義出一個限制比它少權(quán)限比它大的使用方式(變量的指針或引用)。這樣就可能會使新定義的使用方式做超越原本數(shù)據(jù)限制的行為(賦值)。計算機就會報錯。
2017-07-22