已采纳回答 / onemoo
在C++中,传统数组必须是固定大小的。int array[]; 这样定义数组会因为没有指定数组大小而报错的。如果需要长度不确定的数组,应该使用标准库的 std::vector
2015-12-05
已采纳回答 / AAnonymous
类型不符,coor类型的引用指向了int型的值另外,在C++中,struct就是类,和class的区别就是默认是public的(class默认是private的),所以没有必要使用C风格的写法
2015-11-26
已采纳回答 / Tedwcy
const int const *p = &a; // *p 和 p均为常量const int *p = &a; // *p 为常量 ,p是变量(可以指向其它地址)
2015-11-12
已采纳回答 / 紫泉
表示一直在用vs2013,最近用vs2015了,简单的说,主要是vs的智能提示太强大了,用多了自己会变笨,会过于依赖智能提示等。如果用比较低级的,比如codeblocks或是dev-c就会好的多,因为这些软件的智能提示不强大,敲的时候感觉是自己在敲,而不是软件帮你敲,自己也会感觉自牛逼哄哄的。初学者推荐后面2款吧,如果是专业的,又想代码敲快一点,可以用vs2012及以上版本
2015-10-31
已采纳回答 / onemoo
你在题目中写的代码和图片中的不一样啊,以题中代码为例,区别就是:int *&p 中 q 是引用类型,p 为 q 的引用。int *p 中的 p 就是指针。引用类型有点“别名”的意思,操作p就相当于操作q。所以在这代码中,这两种声明方式不影响最后结果。
2015-10-30
已采纳回答 / onemoo
可以这样写! 也许你的编译器太老了,不能正确处理scope。一般来说,不应在switch的case中定义变量,但其实并不是完全不能定义变量,而是有一定的限制。 因为执行流程可能会跳过某些case,这样定义语句也就被跳过了,所以语法不允许跳过在同个作用域中定义并初始化变量的语句,只有未初始化的声明语句可以跳过。但实际上case 1这个label中的for语句有独立的作用域(C++11新增的特性),在其中定义并初始化b是允许的,所以这个代码可以编译通过。
2015-10-27
已采纳回答 / DoDream
前者存在于栈,有一定的生命周期。后者存在于堆,跟程序同生死,所以当你不用该数组时最好释放掉,不然会导致内存泄露。推荐你一个不错的网站,百度搜索C++技术网,第一个就是了,里面有一些关于堆栈的文章,可以加深你对内容空间的了解,这个网站还有很多不错的资源可以下载,例如电子书,IDE等。
2015-10-27