C语言中函数返回值为int和返回值为int&这两种情况没什么不同啊! c语言为什么函数fun为int型 不是没有返回值吗

c\u8bed\u8a00\u4e2d\u88ab\u8c03\u51fd\u6570\u7528int\u548c void\u4f1a\u6709\u4ec0\u4e48\u533a\u522b\u5417,\u8fd4\u56de\u503c\u7684\u4f5c\u7528\u662f\u4ec0\u4e48?

int\u51fd\u6570\u8868\u793a\u8fd4\u56de\u503c\u4e3aint\u578b\u6570\u636e
void\u51fd\u6570\u8868\u793a\u6ca1\u6709\u8fd4\u56de\u503c
\u8fd4\u56de\u503c\u7684\u4f5c\u7528\uff1f\u3002\u3002\u3002\u5982
int add(int a, int b){ return a+b;}he = add(10, 20); //\u901a\u8fc7add\u7684\u8fd4\u56de\u503c\u5c31\u53ef\u4ee5\u5f97\u523010\u4e0e20\u7684\u548c \u4f60\u8bf4\u7684\u795e\u9a6c\u610f\u601d\uff1f\u4e3e\u4e2a\u4f8b\u5b50\u3002

\u51fd\u6570su\u4e2dfor\u5faa\u73af\uff1a
for (i1 = z1; i1 = 1; i1--){ if (z2%i1 == 0) p = i1; break;}for\u8fd0\u884c\u4e00\u6b21\u5c31break\u4e86\uff0c\u9000\u51fafor\u5faa\u73af\u3002

\u989d\uff0c\u8fd9\u4e2afor\u6709\u95ee\u9898\u554a\uff01
for\u91cc\u9762\u7684\u5224\u65ad\u8bed\u53e5\u201ci1= 1\u201d\uff0c\u6c38\u8fdc\u4e3a\u771f\uff01
\u6267\u884c\u8fc7\u7a0b\uff1a
i1=z1;
i1 = 1; //\u5224\u65ad\u4e3aTrue
if (z2%i1 == 0) //\u4e3aTrue
p = i1; //p=1
break; //\u9000\u51fafor\u5faa\u73af

\u5f53\u51fd\u6570\u8fd4\u56de\u503c\u6ca1\u6709\u663e\u5f0f\u58f0\u660e\u65f6,\u9ed8\u8ba4\u8fd4\u56de\u503c\u7c7b\u578b\u4e3aint\u578b.
\u5373\u5199\u4f5c
fun(int a);
\u8fd9\u6837\u7684\u5f62\u5f0f\u65f6,\u7b49\u6548\u4e8e
int fun(int a);
\u4e0d\u8fc7 \u5728\u4f60\u7684\u56fe\u7247\u4e0a\u5e76\u6ca1\u6709\u53d1\u73b0\u7c7b\u4f3c\u60c5\u51b5\u7684\u5b9a\u4e49\u6216\u8005\u58f0\u660e.

函数返回int&只有C++才有,C是没有的。你说的问题“确实如此”,“没有区别”。因为int&是引用,只是一个同类型变量的别名,并不是什么地址。所以从“值的使用角度”看,返回int和返回int&是一样的。但是,引用与普通变量还是有区别的,特别是C++中有些函数的形式参数要求就是引用而不是变量,当使用某函数的返回值作为这些函数的实参时,返回值是int的则因类型不匹配而不能成功。

你定义两个函数,返回值一个是int, 一个int&

int fun1(int x)
{
return x;
}
int & fun2(int &x)
{
return x;
}

int x = 3;
验证一下 fun1(x) = 3;和fun2(x) = 3就知道区别了
提前透露一下,返回引用的函数可作为等式的左值

#include<stdio.h>
int main(void)
{
int a = 5;
printf("%d\n",a);
printf("%d\n",&a);
return 0;
}
举个简单的例子
&a是一个地址,系统把这个a变量存放在这个地址中。为什么会是整数,因为你定义他就是一个整型变量的地址。他就会把a这个数字的地址以你所定义的类型(也就是int型输出)
你不能说a和&a是一样的

编译过程中不会创建新的 变量副本
在每个函数结束时 如果有回参 那么先创建临时变量 把原始数据复制 整个函数释放
然后主调函数 接收临时变量 并传递 之后删除 临时变量
以上是返回 int(double等)
引用 返回 只能是 主调函数传递过去的 在被调函数释放之后还可以存在的 变量
如果引用 是 被调函数的 局部自动变量 当函数 释放后变量地址不可访问 传参失败

&为取地址符,
就是一个地址,地址也是一个非负整数.

  • int鍜void鐨鍖哄埆
    绛旓細褰杩斿洖鍊间负绫诲瀷涓篺loat鏃讹紝鍑芥暟灏遍渶瑕佽繑鍥炰竴涓暟鎹被鍨嬩负float鐨勮繑鍥炲笺傝屽綋杩斿洖鍊肩被鍨嬩负void鏃讹紝鎴戜滑绉拌繖涓鍑芥暟杩斿洖绌猴紝鎴栬呰繖涓嚱鏁版棤杩斿洖鍊笺傚湪鏍囧噯鐨C璇█涓锛屾帹鑽愪富鍑芥暟鏈夎繑鍥炲硷紝骞朵竴鑸害瀹氳繑鍥0浠h〃绋嬪簭宸ヤ綔鏃犻棶棰樸傚湪璋冪敤涓涓彲鎵ц鏂囦欢鏃讹紝骞朵笉鑳藉緢鐩磋鐨勫緱鍒拌繑鍥炲硷紝鑰岄渶瑕侀澶栫殑鎿嶄綔銆傛瘮濡傚湪...
  • intmain鍜寁oidmain鐨鍖哄埆
    绛旓細2銆杩斿洖鍊绫诲瀷锛歩ntmain杩斿洖int绫诲瀷鐨勬暟鎹紝voidmain涓嶈繑鍥炪備絾鏄湪C璇█鎺ㄨ崘鍐欐硶涓紝寤鸿浣跨敤intmain锛屽洜涓哄湪鏈夌殑缂栬瘧鍣ㄨ櫧鐒秜iodmain鍙互閫氳繃缂栬瘧锛屼絾鍦ㄥ叾浠栫紪璇戝櫒灏变細鎶ラ敊銆備负浜嗕唬鐮佹嫢鏈夋洿濂界殑鍙Щ妞嶆э紝涓鑸啓intmain銆俶ain鍑芥暟涓庣敤鎴疯嚜宸卞畾涔鐨勫嚱鏁閮芥槸鍚勮嚜鐙珛鐨勬ā鍧楋紝鍗冲嚱鏁颁笉鑳藉祵濂楀畾涔夛紝閫氫織鐨勮锛屼綘...
  • C璇█涓嚱鏁绫诲瀷鍜岃繑鍥炲绫诲瀷蹇呴』涓鑷翠箞
    绛旓細浼间箮娌℃湁鈥滃嚱鏁扮被鍨嬧濅竴璇淬鍑芥暟鐨杩斿洖鍊肩被鍨嬫槸瀹氫箟鍑芥暟鏃剁‘瀹氱殑锛屽嚱鏁扮殑杩斿洖鍊肩殑绫诲瀷椤讳笌瀹氫箟鐨勫嚱鏁拌繑鍥炲绫诲瀷鍏煎锛屽苟涓嶈姹傚畬鍏ㄤ竴鑷达紝姣斿瀹氫箟鐨勮繑鍥炲肩被鍨鏄痠nt锛屽彲浠ュ湪鍑芥暟涓繑鍥瀋har鍨嬨乫loat鍨嬨乨ouble鍨嬬瓑锛屼絾閮借鑷姩寮哄埗鎴栨埅鏂(缂栬瘧鏃朵細鏈夌簿搴︽崯澶辨彁绀)涓篿nt鍨嬶紱涓嶅吋瀹圭殑杩斿洖鍊煎氨浼氳繃涓嶄簡缂栬瘧...
  • 鍑芥暟杩斿洖鍊肩殑绫诲瀷鍜屽嚱鏁伴閮ㄥ畾涔夌殑绫诲瀷涓鑷村悧?
    绛旓細c璇█瑙勫畾锛鍑芥暟杩斿洖鍊鐨勭被鍨嬫槸鐢卞嚱鏁伴閮ㄥ畾涔夌殑绫诲瀷鍐冲畾銆傚嚱鏁拌繑鍥炲煎簲涓庨閮ㄥ畾涔夌殑绫诲瀷涓鑷达紝濡傝嫢涓嶄竴鑷达紝鍒欒嚜鍔ㄥ皢杩斿洖鍊煎己鍒惰浆鎹负鍑芥暟棣栭儴瀹氫箟鐨勭被鍨嬨傛病鏈夊畾涔夌被鍨嬫椂榛樿涓篿nt鍨嬨備篃灏辨槸璇翠綘鐨勫嚱鏁鏄粈涔堢被鍨嬶紝杩斿洖鍊煎氨鏄粈涔堢被鍨嬨傛瘮濡傦細鍑芥暟瀹氫箟 int fun(int a,char b)杩斿洖鍊煎氨鏄暣鍨 鍑芥暟瀹氫箟 ...
  • C璇█涓鐨勨渞eturn 0鈥濇槸浠涔堟剰鎬?
    绛旓細c璇█涓return 0鐨勫惈涔夛細1銆杩斿洖鍊糹nt 绫诲瀷鐨勫嚱鏁拌繑鍥锛歳eturn璇彞鐢ㄦ潵缁撴潫寰幆锛屾垨杩斿洖涓涓鍑芥暟鐨鍊笺俽eturn 0锛氫竴鑸敤鍦ㄤ富鍑芥暟缁撴潫鏃讹紝鎸夌収绋嬪簭寮鍙戠殑涓鑸儻渚嬶紝琛ㄧず鎴愬姛瀹屾垚鏈嚱鏁般2銆佸竷灏旂被鍨嬭繑鍥烇細return 0锛氳繑鍥炲亣銆俽eturn 1锛氳繑鍥炵湡銆侰璇█绠浠嬶細C璇█鏄竴闂ㄩ潰鍚戣繃绋嬬殑璁$畻鏈虹紪绋嬭瑷锛屼笌C++銆丆#...
  • C璇█涓void main鍜int main鏈変粈涔堝尯鍒
    绛旓細1銆佹湁鏃杩斿洖鍊 void main娌℃湁杩斿洖鍊硷紝int main鏈夎繑鍥炲笺2銆佽繑鍥炲肩被鍨 int main杩斿洖int绫诲瀷鐨勬暟鎹紝void main涓嶈繑鍥炪備絾鏄湪C璇█鎺ㄨ崘鍐欐硶涓紝寤鸿浣跨敤int main锛屽洜涓哄湪鏈夌殑缂栬瘧鍣ㄨ櫧鐒秜iod main鍙互閫氳繃缂栬瘧锛屼絾鍦ㄥ叾浠栫紪璇戝櫒灏变細鎶ラ敊銆備负浜嗕唬鐮佹嫢鏈夋洿濂界殑鍙Щ妞嶆э紝涓鑸啓int main銆
  • C璇█涓&,%d,int,return(0)閮鏄浠涔堟剰鎬??
    绛旓細return(0)锛鍑芥暟杩斿洖0銆俽eturn鏄竴涓嚱鏁拌繑鍥炶鍙ワ紝C璇█鐨勫嚱鏁蹇呭畾鏈夎繑鍥炲硷紝鍙兘杩斿洖涓虹┖锛屼絾涓瀹氳杩斿洖銆傚綋杩斿洖鍊间笉鏄痸oid鐨勬椂鍊欙紝return璇彞鏄繀瑕佺殑锛屽洜涓轰竴涓寚鏄庝簡杩斿洖鍊肩被鍨嬬殑鍑芥暟濡傛灉娌℃湁杩斿洖鍒欏彲鑳藉鑷村嚭閿欍傛瘮濡傦紝濡傛灉鎸囨槑鍑芥暟鐨勮繑鍥炲绫诲瀷涓篿nt锛屽氨蹇呴』杩斿洖涓涓猧nt绫诲瀷鐨勫硷紝濡俽eturn(0);...
  • c璇█涓void鍜int绫诲瀷鍑芥暟鐨勫畾涔,鎬!!!
    绛旓細void锛氫腑鏂囩炕璇戜负鈥滄棤绫诲瀷鈥濄傚父鐢ㄥ湪绋嬪簭缂栧啓涓瀹氫箟鍑芥暟鐨勫弬鏁扮被鍨嬨杩斿洖鍊銆佸嚱鏁颁腑鎸囬拡绫诲瀷杩涜澹版槑銆倂oid鐨勫瓧闈㈡剰鎬濇槸鈥滄棤绫诲瀷鈥濓紝void *鍒欎负鈥滄棤绫诲瀷鎸囬拡鈥濓紝void *鍙互鎸囧悜浠讳綍绫诲瀷鐨勬暟鎹Int锛int鏄灏嗕竴涓暟鍊煎悜涓嬪彇鏁翠负鏈鎺ヨ繎鐨勬暣鏁鐨勫嚱鏁銆INT鏄鏁版嵁搴撲腑甯哥敤鍑芥暟涓鐨勫彇鏁村嚱鏁帮紝甯哥敤鏉ュ垽鍒竴涓...
  • C璇█涓鍏佽榛樿鐨勫嚱鏁绫诲瀷鏄粈涔
    绛旓細int銆侰璇█瑙勫畾锛氬湪瀹氫箟鍑芥暟鏃讹紝鑻ュ叾杩斿洖鍊绫诲瀷涓篿nt锛屽垯鍙互榛樿銆C璇█鍑芥暟鏈変笁绫伙紝鍒嗕负澶栭儴鍑芥暟銆侀潤鎬佸嚱鏁般佸唴鑱斿嚱鏁帮紝鍏朵腑鍓嶄袱绉嶆槸C89鏍囧噯鏀寔锛岀涓夌鏄疌99鏍囧噯澧炲姞鐨勩1銆佸閮ㄥ嚱鏁 杩欑被鍑芥暟鏄粯璁鐨勫嚱鏁绫诲瀷锛屽熀鏈笂骞虫椂鎴戜滑浣跨敤鐨勫氨鏄繖绉嶅嚱鏁帮紝澹版槑鏈変互涓嬩袱绉嶆柟寮忥紝渚嬪锛// 浣跨敤extern鍏抽敭瀛楋紝...
  • C璇█瑙勫畾,鍑芥暟杩斿洖鍊肩殑绫诲瀷鏄敱( )銆 A. return璇彞涓殑琛ㄨ揪寮忕被鍨嬫墍鍐...
    绛旓細鍐嶅氨鏄鍑芥暟澹版槑鍐欐垚prot(int *, int), //涓嶇粰浠栧0鏄庤繑鍥炵被鍨嬨侾C鏈轰細闅愬紡鐨勮杩斿洖鍊间负int鍨,濡傛灉浣爎eturn 0.32, 杩斿洖鍘荤殑鍊煎叾瀹炴槸0. 鏈洖绛旂敱缃戝弸鎺ㄨ崘 涓炬姤| 绛旀绾犻敊 | 璇勮 11 16 375875192 閲囩撼鐜:37% 鏉ヨ嚜:鑺濋夯鍥 鎿呴暱: 宸ョ▼鎶鏈瀛 甯歌杞欢 C/C++ 姹囩紪璇█ 鎿嶄綔绯荤粺/绯荤粺鏁呴殰 ...
  • 扩展阅读:int 10 a ... int()函数 ... c c++ c# ... 返回值是干什么的 ... int main可以不用返回值吗 ... int函数怎么调用返回值 ... if函数多个条件嵌套 ... main函数必须返回int ... int函数返回别类型的值 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网