注册 登录
编程论坛 C++教室

关于const

小盗发飙 发布于 2013-01-01 17:52, 312 次点击
#include<iostream>
using namespace std;

int main()
{
    const int a=10;
    int *p=&a;
    cout<<*p<<endl;
    system("pause");
}
表示编译不过,为啥,
5 回复
#2
yuccn2013-01-01 18:55
int *p=&a; 改为const int *p=&a;就行了或者int *p=(int *)&a;
#3
不玩虚的2013-01-01 19:45
版主的说的正确。楼主的主函数main()的类型是int,函数体末尾少了个return 0;,不想要也行把int main()的int 改成void。初学c++时要养成好习惯。楼主用的什么教材,system("pause");调用系统函数,我写c++表示从来没有用过。我的不写也行。结果是Press any key to continue,多system("pause");这句就一个中英文之分。







好好学习,同进步!
#4
小盗发飙2013-01-02 19:27
求版主解释,为啥??
#5
小盗发飙2013-01-02 19:27
回复 2楼 yuccn
为啥,不明白
#6
rjsp2013-01-04 09:17
以下是引用不玩虚的在2013-1-1 19:45:44的发言:

版主的说的正确。楼主的主函数main()的类型是int,函数体末尾少了个return 0;,不想要也行把int main()的int 改成void。初学c++时要养成好习惯。楼主用的什么教材,system("pause");调用系统函数,我写c++表示从来没有用过。我的不写也行。结果是Press any key to continue,多system("pause");这句就一个中英文之分。
1。对于main函数,对于每个退出分支,若无return,则编译器自动加上return 0,这是标准规定的。
2。main的返回类型必须是int,无论对于C,还是C++都是这么规定的。你的编译器有可能对于void main不报错,但你要知道这是非标准的。
3。加system("pause"),或类似的烂玩意儿,只说明对控制台程序(命令行程序)的行为模式理解有误。控制台程序结束后就应该退出,而控制台本身是否退出不应该由程序越俎代庖去控制。
4。你的“Press any key to continue”不是程序本身的,而是IDE好意加上去的。同样,也不是加在程序本体中(否则就犯了第3条描述的错误),而是你通过IDE调用控制台程序时,IDE加了Shell
1