c语言返回主函数
㈠ c璇瑷濡备綍瀹氢箟涓涓鍑芥暟鍙浠ヨ繑锲炲氢釜鍊煎洖铡荤粰涓诲嚱鏁板憖銆
鍑芥暟镄杩斿洖鍊椤跺氭槸涓涓鏁帮纴阃氲繃鍑芥暟鐩存帴杩斿洖镄勮繖涓鏁板彧链夊湪鏄鎸囬拡镞舵墠鑳界粰鍑哄氢釜鏁版嵁缁撴灉銆
鍙浠ヨ冭槛浠ヤ笅鍑犱釜鏂规硶锛
杩斿洖鎸囬拡锛
int*display() {int *p;p=malloc(sizeof(int)*6); ... return p;} //鐢╬[0]~p[5]璁$畻钖勪綅
void main() {int*p; p=display(); ... free(p);}
浣跨敤鍏ㄥ眬鍙橀噺锛氩皢shiwa,wa,qiao,,shi,ge瀹氢箟鎴愬叏灞鍙橀噺锛岀劧钖庡瓙绋嫔簭鍜屼富绋嫔簭鐩存帴鐢
浣跨敤鍑芥暟鍙傛暟锛
void display(int* shiwa,int* wa,int* qiao,int* ,int* shi,int ge)
鍑芥暟涓鐢ㄧ被浼艰繖镙风殑鐢ㄦ硶璁$畻锛(*ge)=Data%10;
void main() {int shiwa,wa,qiao,,shi,ge; display(&shiwa,&wa,&qiao,&,&shi,&ge)}
鐢ㄤ竴涓瓒冲熼暱镄勬暟杩斿洖锛
long display() {long n;... n=shiwa; n*=10; n+=wa; n*=10; n+=qiao; n*=10; n+=; n*=10; n+=shi; n*=10; n+=ge; return n;}
void main() {int wa; long n; n=display(); wa=n/10000; wa%=10;}
㈡ c语言 让函数返回到上一级 和 直接返回到主函数 分别应该用什么语句
函数返回上一级使用return语句就行了。
c标准库里有一套函数:setjmp/longjmp ,程序员可以在任意位置调用setjmp保存现场,然后在任意另外位置调用longjmp跳到那个保存的现场。这样就可以满足直接调回主函数的需求,但这套函数保存现场并不充分,而且打破正常流程控制,很不稳定,一般来所不推荐使用。
㈢ C语言调用完void函数后如何将值返回主函数实现输出的呢 void函数没有返回值。。。是数组不同
1、C语言调用完void函数后如何将值返回主函数实现输出的呢?
答:因为 void函数没有返回值,要想把让函数的值带回主函数,还有两种办法,第一是使用指针做参数,第二是潆模滑卜数组做参数。
2、用指针传递就可让迹以了吗,那如果不用指针呢?
答:用指针当然可以啦。如果不用指针,那就选择用旦穗数组参数了。
㈣ c语言怎么从子函数的子函数直接返回主函数
C++可以通过异常处理的throw和catch来实现从子函数的子函数直接返回主函数,汇编语言可以用jmp指令跳转实现这个需求。
C语言主要靠函数调用和return在函数之间切换,很难做到在多层调用中直接返回主函数。虽然goto语句可以无条件跳转,但是必须在同一个函数中使用。
因此解决的方法也是用一个特殊的值作为需要返回的标志,然后在两层调用函数中都遇到该值就返回,但是这个方法也有两个前提:
1)你的两个子函数都是由返回值的函数
2)你选择的特殊值和函数正常的返回的取值不会冲突,不会引起二义性。
因此建议你的这个问题还是用C++ 的异常去解决比较好。
㈤ C璇瑷涓濡备綍灏嗘煇鍑芥暟镄勬墽琛岀粨鏋滆繑锲炰笂灞傚嚱鏁帮纻濡备綍钖屾椂杩斿洖澶氢釜鍊硷纻
鐢╮eturn 杩斿洖缁撴灉鍒拌皟鐢ㄦ湰鍑芥暟镄勫湴鏂.
鍙浠ヨ繑锲炰竴涓鎸囧悜缁撴瀯浣撶殑鎸囬拡, 杈惧埌杩斿洖澶氢釜鍊肩殑鐩镄. 杩欑嶆柟寮忎笉澶瀹夊叏, 鎴栬呭畾涔夊叏灞鍙橀噺,鐩存帴鍦ㄥ瓙鍑芥暟涓鏀瑰彉鍏跺, 鎴栬呭畼鏂瑰父鐢ㄧ殑涓绉嶆柟寮忓备笅:
#include<stdio.h>
#include<stdlib.h>
structPOINT
{
intx;
inty;
};
voidfun(structPOINT*p)
{
p->x=5;
p->y=8;
}
intmain()
{
structPOINTpt;
fun(&pt);//瀹氢箟涓涓缁撴瀯浣揿彉閲忎紶鍏ュ嚱鏁扮敤𨱒ユ帴鏀剁粨鏋,鐩稿綋浜庤繑锲炲氢釜鍊
printf("pt.x=%dpt.y=%d",pt.x,pt.y);
return0;
}