看 const 右边开始 是修饰谁 ?
int a =5;
int const *p = &a,const 修饰 *p ,*p 不能变; a =10✅, *p=10 ❌;
int * const p = &a, const 修饰 p, p不能变;
int a =5;
int const *p = &a,const 修饰 *p ,*p 不能变; a =10✅, *p=10 ❌;
int * const p = &a, const 修饰 p, p不能变;
2016-12-01
#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 const *p与 int* const p,把*读作pointer to然后从后往前读.
第一个int const *p就可以读作 p is a pointer to const int,p是指向常量的指针
第二个int* const p就可以读作 p is a const pointer to int,p是指向int型的常指针
第一个int const *p就可以读作 p is a pointer to const int,p是指向常量的指针
第二个int* const p就可以读作 p is a const pointer to int,p是指向int型的常指针
2016-11-23
最新回答 / 嘿嘿嘿11
int main(int argc , char* argv[]){ {new int;} _CrtDumpMemoryLeaks(); return 0;}<...code...>
2016-11-20
最新回答 / Qays
arr存放的是你之前申请的内存的首地址,如果你只写delete arr的话它就只会释放首地址对应的空间,而你申请的十个空间中后面的九个都不会释放,加上[]只会表面释放arr着整一块的内存。
2016-11-20