已采纳回答 / DoDream
前者存在于栈,有一定的生命周期。后者存在于堆,跟程序同生死,所以当你不用该数组时最好释放掉,不然会导致内存泄露。推荐你一个不错的网站,百度搜索C++技术网,第一个就是了,里面有一些关于堆栈的文章,可以加深你对内容空间的了解,这个网站还有很多不错的资源可以下载,例如电子书,IDE等。
2015-10-27
已采纳回答 / onemoo
const int x=3; const int &y=x; y=5 // 错误y 是一个const int的引用,而且 y 引用的是 x。你操作y相当于操作一个const int变量(当然这个变量指的是x),所以你不能给 y 重新赋值。int x=3; const int &y=x; y=5 // 仍错误,但 x = 5 是可以的。y 还是一个const int的引用,且引用的是 x,和前一个的道理一样,你无法修改 y 的值。但 y 实际上引用的并非是一个const变...
2015-10-23
已采纳回答 / onemoo
你想问C还是C++?只有在很老的C89标准中,变量才必须在块作用域的开头声明,后来的标准就没有这个限制了。 基本上变量在使用前声明就行。C++中好像一直就没有这个限制。现在学习编程的话,就别再用古旧的编译器了,最好使用支持新标准的新编译器。
2015-10-22
最赞回答 / qq_龙_18
strcpy_s和strcpy()函数的功能几乎是一样的。strcpy函数,就象gets函数一样,它没有方法来保证有效的缓冲区尺寸,所以它只能假定缓冲足够大来容纳要拷贝的字符串。在程序运行时,这将导致不可预料的行为。用strcpy_s就可以避免这些不可预料的行为。这个函数用两个参数、三个参数都可以,只要可以保证缓冲区大小。三个参数时:errno_t strcpy_s(char *strDestination,size_t numberOfElements,const char *strSource);两个...
2015-10-18
最新回答 / 无情绪患者
这是c++中指针类型的引用格式为 *&指针引用名=指针int *&q=p; 课程中前应该还有一句int *p; 所以这句话的意思是 给指针p取一个别名指针q,&前要*单单看int &q=p; 的话,意思是 给p取别名为q
2015-10-18
已采纳回答 / onemoo
在声明(定义)时,前面加&代表所声明的变量是引用类型,前面的*代表指针类型。第一段代码中,为指针赋值时,等号右侧忘了写&。第二段代码中,声明引用时不能在&后面加上cosnt。 引用原本就是const的。第三段代码中:第9行, myAge为const引用,引用的是age变量。没问题。第11行, pi为指向const int的指针,指向age变量。 没问题。第12行, pi1为指向int的const指针,指向age变量。 没问题。第14行, pi2为指向const int的const指...
2015-10-18
已采纳回答 / onemoo
*号 用在不同的地方有不一样的含义。第一个 *p : 在声明(定义)时表示星号后面的变量是指针类型,也就是 p 是指向int的指针。第二个 *p : 表示将 p 这个指针“解引用”,得到的是 p 所指的对象(也就是new出来的int对象)。 第二个语句就是把20赋值给了p所指的对象。
2015-10-16