奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

C語言

C語言函數(shù)返回值解析

時間:2024-09-17 17:58:09 C語言 我要投稿
  • 相關推薦

C語言函數(shù)返回值解析

  用C語言編寫不同的函數(shù),函數(shù)返回的值是不一樣的。下面是小編為大家?guī)淼年P于C語言函數(shù)返回值解析的知識,歡迎閱讀。

  程序一:

  int main()

  {

  int *p;

  int i;

  int*fun(void);

  p=fun();

  for(i=0;i<3;i++)

  {

  printf("%d ",*p);

  p++;

  }

  return 0;

  };

  int* fun(void)

  {

  static int str[]={1,2,3,4,5};

  int*q=str;

  return q;

  }

  //不能正確返回

  雖然str是在動態(tài)變量區(qū),而該動態(tài)變量是局部的,函數(shù)結束時不保留的。

  程序二:

  int main()

  {

  char *p;

  char*fun(void);

  p=fun();

  printf("%s ",p);

  return 0;

  };

  char * fun(void)

  {

  char *str="hello";

  return str;

  }

  //可以正確返回

  但是,字符串"hello"不是變量,而是一個常量,編譯程序在處理這種常量時,通常把它放在了常量區(qū)中。而常量區(qū)則是始終存在的。

  后一個例子中函數(shù)fun的返回值就是一個指向這種常量區(qū)的指針。

  函數(shù)返回指針,要使主程序可以使用這個指針來訪問有意義的數(shù)據(jù),關鍵就是要保證在使用這個指針值的時候,該指針所指向的地方的數(shù)據(jù)仍然有意義。

  還有,如果指針是指向函數(shù)的指針,那么這個指針就是指向程序代碼區(qū)的。這也是一種應用的情況。

  另外,如果明白了它的原理,程序員還可以發(fā)明出一些其他靈活的使用方法,當然,那都屬于“怪”方法,一般不提倡的。

  程序三:

  int main()

  {

  int a,b;

  int max;

  int fun (int a,int b);

  scanf("%d%d",&a,&b);

  max=fun (a,b);

  printf(" %d ",max);

  return 0;

  };

  //http://www.bianceng.cn

  int fun(int a,int b)

  {

  int max;

  if(a>b)

  max=a;

  else

  max=b;

  return max;

  }

  //可以正確返回

  程序三:

  這個例子中,返回的不是變量max的地址,返回的是它的值。

  return后面的東西,看做一個表達式,返回的是這個表達式的值。

  例如,入口如果a是3,b是5,則此時(執(zhí)行return語句時)max里面存的是5。而return語句的功能就是把max里面的5取出來,放到“返回值寄存器”中。

  主程序是從“返回值寄存器”得到這個5的(此時max變量已經(jīng)不存在了)。

  你前面的第二個例子中,同樣,指針變量str在函數(shù)結束后已經(jīng)不存在了。但是在return語句中,把指針變量str里面的值(等于字符串"hello"存放處的地址)送到“返回值寄存器”中了。

  動態(tài)變量str不存在了,但常量區(qū)中的字符串"hello"還存在。主程序根據(jù)返回的地址就可以找到該字符串。

  程序四:

  int main()

  {

  char *p;

  char *fun(void);

  p=fun();

  printf("%x ",p);

  printf("%s ",p);

  return 0;

  }

  char* fun(void)

  {

  // char str[]={'a','b','c','d','e','f','

主站蜘蛛池模板: 康马县| 卢龙县| 乌鲁木齐县| 田阳县| 济宁市| 扶风县| 凤台县| 吴川市| 石河子市| 东乌珠穆沁旗| 雷波县| 曲水县| 普兰店市| 许昌市| 珠海市| 湟中县| 安国市| 射阳县| 白山市| 宁武县| 香河县| 枣强县| 彭阳县| 阿拉善左旗| 五常市| 繁昌县| 龙江县| 柏乡县| 长白| 江川县| 普格县| 兴山县| 绥化市| 安康市| 肇庆市| 和林格尔县| 黄骅市| 饶平县| 威海市| 高平市| 青川县|