&符号就是取地址符号, 含义只这么一个; *符号就是创建一个指针, 或者做一次地址跳转;
int a = 10; // 给a分配一个内存逻辑地址0x100001, 这个地址存放了值10;
int *p = &a; //创建变量p, 给p分配地址0x100002, 这个地址存放的值是"0x100001"(a的逻辑地址值);
int *&q = p; //创建变量q, 给q分配地址也是0x100002, 因此这个地址存放的值还是a的逻辑地址值;
*q = 20; //访问存放在q变量地址下的值, 获得了a的地址值, 再访问一下a的地址值, 修改上面的内容为20;
int a = 10; // 给a分配一个内存逻辑地址0x100001, 这个地址存放了值10;
int *p = &a; //创建变量p, 给p分配地址0x100002, 这个地址存放的值是"0x100001"(a的逻辑地址值);
int *&q = p; //创建变量q, 给q分配地址也是0x100002, 因此这个地址存放的值还是a的逻辑地址值;
*q = 20; //访问存放在q变量地址下的值, 获得了a的地址值, 再访问一下a的地址值, 修改上面的内容为20;
2017-07-10
正确答案:
#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 <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>
#include <stdlib.h>
using namespace std;
int main(void)
{
int x = 10;
int &y = x;
cout << "x:" << x << endl << "y:" << y << endl;
y = 20;
cout << "After x:" << x << endl << "After y:" << y << endl;
system("pause");
return 0;
}
#include <iostream>
#include <stdlib.h>
using namespace std;
int main(void)
{
int x = 10;
int &y = x;
cout << "x:" << x << endl << "y:" << y << endl;
y = 20;
cout << "After x:" << x << endl << "After y:" << y << endl;
system("pause");
return 0;
}
int getMax(int *&a,int n)
{
//定义一个变量并获取数组的第一个元素
int max=a[0];
for(int i = 1; i < n; i++)
{
//比较变量与下一个元素的大小
if(max<a[i])
{
//如果数组中的元素比maxNum大,则获取数组中的值
max=a[i];
}
}
return max;
}
{
//定义一个变量并获取数组的第一个元素
int max=a[0];
for(int i = 1; i < n; i++)
{
//比较变量与下一个元素的大小
if(max<a[i])
{
//如果数组中的元素比maxNum大,则获取数组中的值
max=a[i];
}
}
return max;
}