C语言函数注意点有哪些?

6882d8ffb0473d70d9a864a598151b0c.png

点击上方蓝字关注我,了解更多咨询

c1690b7c6b4416c546d87dd7fe3571fd.png

构成C程序的基本单位是函数        

C语言程序是由函数构成的,不存在过程。

函数名代表该函数的入口地址

C语言函数可以嵌套调用,例如:fun(fun(x))        ;

于C语言中,子程序的作用是由函数来完成的,无过程的概念。

C语言中,如果函数前不加任何数据类型时,缺省函数的类型为整型,

列如:

fun(float x)

{  float y;

   y=3*x-4;

   return y;

   }

返回值位未定义,按定义函数的返回值位整型。

int * f() 表示f是一个函数,它带回一个指针值,这个指针是指向一个整型数据的。

即:一个返回值为指针型的函数名。

函数:所有函数都是平等的,即在定义函数时是互相独立的,一个函数并不从属于另一函数,即函数不能嵌套定义,但可以互相调用,但不能调用main函数。

所以void *fun()表示声明了一个函数,这个函数的返回值是指向无值型变量的指针。

void (*fun)():fun函数的返回值是无值型的指针类型        

函数的声明:

int  fun(double  x[10], int  *n):

要求:函数声明可以照写已定义的函数的首部,再加一个分号就成为了对函数的声明,在函数声明中也可以不写形参名,而只写形参的类型,但要保证与函数首部写法上的一致,即函数类型、函数名、参数个数、参数类型和参数顺序相同。字符数组可用指针来表示,

函数的调用:

int add (int  a, int{return(a+b); }
main ()
{int  k,(*f)(),a=5,b=10;
 f=add;
  …
}
k=(*f)(a,b);
k=add(a,b);        
k=f(a,b);

函数的形参和实参的性质。

1.在内存中,实参单元与形参单元是不同的单元。形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只有在函数内部有效。函数调用结束返回主调函数后则不能再使用该形参变量。

  1. 实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使实参获得确定值。

return返回值语句:

用户定义的函数中可以没有return语句;如果被调函数中没有return语句,并不带回一个确定的、用户所希望得到的函数值,但实际上,函数并不是不带回值,而只是不带回有用的值,带回的是一个不确定的值,为了明确表示"不带回值",可以用"void"定义"无类型",这样,系统就保证不使函数带回任何值,当函数中不需要指明返回值时,可以写成"return" ;一个函数中可以有一个以上的return语句,执行到哪一个return语句,哪一个语句起作用,即返回主函数,不再执行它下面的其他语句,所以后面的值也不会被返回值出去。

C语言标准规定,数组类型和函数类型不可以做为返回值,

C语言中调用数学库要加上#include <math.h>;

库函数:

h是头文件,头文件是包含函数声明和定义的文件,调用输入输出函数时,要求在源文件中包含头文件"stdio.h"。

    #include是编译预处理指令,就是在编译前将stdio.h这个文件里的函数都添加到你写的cpp文件中,然后参与编译,生成.obj文件。

1 include(编译预处理指令)  ---> stdio.h(源文件)----->  h(头文件)

a1c7cf4c2a4ace8f3dde3892467c6ac3.png

END

*声明:本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

ad3febdacfaa8c412cd36d09be1085a4.png

ceb278bdca96440846369594b8a7a39f.gif

戳“阅读原文”我们一起进步

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言编程注意事项 1. 每个程序中一定包含main()函数, 尽管C语言中对函数命名没有限制。 2. printf函数永远不会自动换行, 只能用\n来实现, 回车键进行的换行在编译中会出现错误信息。 3. 在vs2008等平台中编译、测试要加 system("pause"); 来暂停dos自动退出引起的printf无法显示。 4. 所有自定义变量必须声明才能使用。 5. 每行一般只写一条语句, 在运算符两边加一个空格, 便于阅读。 6. 整数除法将会自动舍位, 不进行四舍五入的操作。 7. for(初始化部分;条件部分;增长部分) 比while 更适用于初始化和增长步长都是单条语句的情况。 8. 使用 #define 名字替换文本对部分"幻数" 赋予意义便于阅读 #define结尾无需;号来结束。 9. EOF(end of file)表示没有字符输入时定义在stdio.h 头文件中 EOF不等于\n 换行等。 10. 由于!= 的优先级大于 = ,因此如果对判断中存在变量赋值时 应对赋值加() 例如: while((c = getchar()) != EOF)。 11. getchar() 用于用户输入直至键入回车键。 12. 变量名以字母和数字组成, (下划线"_"被默认为字符, 以下划线为首写字母的为库类变量名), 变量常以小写字母开头,内部变量名前31位有效, 外部变量名至少前6位保持唯一性。 13.在C语言中是区分字母大小写的。 14. 一个字符常量为一个整数, 用''单引号括起来。例如: '0' 为48, 它与0没有任何关系。 15. ANSI C语言的转义符: \a 响铃符; \b 回退符; \f 换页符; \n 换行符; \r 回车符; \t 横向制表符 ; \v 纵向制表符; \\ 反斜杠; \? 问号; \' 单引号; \" 双引号; \ooo 八进制数; \xhh 十六进制数; '\0' 表示0, 即(null)。 16. 'x'与"x"的区别: 'x'表示一个整数, 字母x在其字符集中对应的数值, "x"表示包含一个字符x 以及一个结束符'\0'。 17. const在声明变量中起限制作用, 该限定变量的值不能被修改。 18. %运算符不能应用于float或double类型。 19. char类型转换为int型时, 因为无法判断它是signed还是unsigned,这样其结果有可能为负数, 所以转换时尽量指定signed和unsigned限制符。 20. ++i与i++ 的不同之处: ++i是先 +1再使用i, i++ 是先使用i再 +1。 21. 三元运算符"?:" 第一个表达式的括号不是必须的, 但是由于三元表达式的优先级非常低, 因此我们还是将第一个表达式用()括起来以便于阅读和理解。 22. C语言中可以使用递归 (即函数调用自身函数), 这样做并不节省储存空间也不加快执行速度, 只是使程序紧凑便于理解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值