最赞回答 / qq_钱剑强_0
尽管楼主的代码可以得到正确输出,但实际上发生了‘缓冲溢出’的错误。之所以楼主得到正确输出应该是视频作者提供的编译器存在Bug没有报错导致的。排名第一的答案在VS2015中编译也会报错。 错误的根源在于strcpy函数。strcmp函数在运行时的过程如下:首先生成一个缓冲区buffer,缓冲区没有限制大小可以接收任意长的字符串(本例为"Hello imooc")。然互缓冲区中的字符串拷贝到str,str在内存中指向char型数组(大小为6字节),也就是说"Hello imooc"拷贝到了cha...
2016-06-06
最赞回答 / 任小青
老师有说,引用分四种:基本数据类型的引用、结构体类型的引用、指针类型的引用、引用作为函数参数1、这道题目肯定是基本数据类型的引用咯,就直接 int &b = a;2、你说的 int *&b = a 是当a是个指针*a才使用的望采纳
2016-05-25
最新回答 / 诗情美如画
第一个 可能因为 const int * 不能转成 int *,常量似乎是无法再次赋值的, 你把指针变量加上const就好了第二个 const的仅作用于*p的值 而不影响p的地址
2016-04-11
最赞回答 / 诗情美如画
比如:写一个加的函数可以这样写int add(int a,int b);//重载函数的类型必须不一样 否则会报错double add(double a,double b);//下面是函数体int add(int a,int b){ return a+b;}double add(double a,double b){ return a+b;}//主函数void main(){ //关键在于你怎么调用 add(5,2);如果你输入的是整数那么 它自动调用int类型的函数//如果你输入的是a...
2016-04-02