C/C++自定义函数、返回值 |
您所在的位置:网站首页 › 返回值怎么写 › C/C++自定义函数、返回值 |
1、调用函数一定是在int main()外的
2、调用的子函数没有返回值,用void,否则会报错子函数没有返回值。
①有返回值
根据返回值类型来定义为int,并且在子函数结尾一定要写上return result(需要返回的值) int main中需要定义一个新的变量去接收子函数返回的值 变量地址作为返回值 全局变量的生命期是永恒的,如果返回一个局部变量的地址会出现问题(变量在子函数中或者在if语句后出现都会随着程序的运行时变量失效) #include int* get() { int num=1; return # } int main() { int* p=get(); *p=12; //p指向的变量已经失效,不能用星号操作 return 0; }用法错误 ,因为get()函数返回的是一个局部变量的地址,当get()获取局部变量的地址返回后,局部变量num的生命周期结束,从而使指针p指向了一个无效的变量。正确程序如下,应该把num定义为全局变量 #include int num=1; int* get() { return # } int main() { int* p=get(); *p=12; return 0; }
再如 int main() { int* p=0; if(1) { int a=123; //a生命期开始 int* p=&a; } //a生命期结束 printf("%d\n",*p); return 0; } ②返回值为bool类型(直接返回true或false ) // 判断a,b,c组成的三角形是否为直角三角形 bool check(int a, int b, int c) { int aa = a * a; // a的平方 int bb = b * b; int cc = c * c; if (aa + bb == cc || aa + cc == bb || bb + cc == aa) { return true; } return false; }3、可以不用传入形参 void test() { for (int i = 1; i |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |