C语言基础语法学习教程函数.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言基础语法学习教程函数

第三部分函数 一、函数功能 C语言的函数可以理解为,汇编语言中的子程序。 fun(){ printf(“Hello world!”); } 上面函数作用是打印“Hello world!”。 二、函数使用 要使用函数要对函数进行定义。 比如,要实现一个功能为返回两个整型数据中较大的一个(如果相等,返回第一个)。 有下面两种方式: 程序1 int f(int,int); main(){ int a=6;int b=8; printf(The bigger one is %d in (%d,%d).,f(a,b),a,b); } int f(int a,int b){ return ab?a:b; } 程序2 int f(int a,int b){ return ab?a:b; } main(){ int a=6;int b=8; printf(The bigger one is %d in (%d,%d).,f(a,b),a,b); } 有三点需要注意: 使用Tc提供的库函数要包含函数声明。 函数返回值的类型匹配 参数的类型匹配 第一个问题,库函数使用要包含声明。看一个例子。 下面程序3用到了strcyp函数,它的声明在string.h头文件中。 程序3 #include string.h int n=0; int pnttime(int); main(){ n++; pnttime(n); if(n==4)return; else main(); } int pnttime(int t){ char str[10]=; char time[6]=time; if(t=0)return 0; time[4]=t1?s:\0; switch(t){ case 1: strcpy(str,st); break; case 2: strcpy(str,nd); break; case 3: strcpy(str,rd); break; default: strcpy(str,th); break; } printf(\n%d%s %s\n,t,str,time); return t; } 第二个问题,返回值类型的匹配。 举两个例子: 程序e1 void fun(); main(){ int a; a=fun(); } void fun(){ printf(no return.); return 0; } 注意这个程序e1能通过编译吗,提示什么错误?如何解决? 再看一个例子,malloc函数返回值是void * 如果char *p=malloc(20);编译将提示错误。如何解决?可以进行类型设置。char *p=(char *)malloc(20); 第三个问题,在使用参数时要注意类型与函数声明的一致。 程序4 #include string.h char str[10]=hello; int setch(char [],int,char); main(){ printf(\nbefore set str:%s\n,str); setch(str,0,H); setch(str,20,A); printf(\nafter set str:%s\n,str); } int setch(char p[],int idx,char ch){ int len; len=strlen(p); if(len0){ printf(\nstr error\n); return -1; } if(idxlen-1||idx0){ printf(\nidx error\n); return -1; } p[idx]=ch; return idx; } 思考问题:如果程序4中把语句setch(str,0,H)中H改成513,会是什么结果,为什么? 程序5 #include string.h char str[3][5]={year,mon,day}; int date[2][3]={{2011,4,10},{2010,12,5}}; struct Date{int year;int mon;int day;}mydate; int setdate(struct Date *,char *,int); int gettype(char *); main(){ int i; struct Date md[2]; for(i=0;i2;i++) printf(\nbefore set mydate%d y:%d m:%d d:%d\n,i,md[i].year,md[i].mon,md[i].da

文档评论(0)

junjun37473 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档