C学习笔记(10)--- 强制类型转换,错误处理,递归

1.强制类型转换:html

 

强制类型转换是把变量从一种类型转换为另外一种数据类型。例如,若是您想存储一个 long 类型的值到一个简单的整型中,您须要把 long 类型强制转换为 int 类型。程序员

您可使用强制类型转换运算符来把值显式地从一种类型转换为另外一种类型:express

 

(type_name) expression;编程

 

 大致上没啥特别的,整体来讲几个点:编程语言

1.强制类型转换运算符的优先级大于除法ide

2.类型转换能够是隐式的,由编译器自动执行,也能够是显式的,经过使用强制类型转换运算符来指定。函数

3.在编程时,有须要类型转换的时候都用上强制类型转换运算符,是一种良好的编程习惯。spa

4.整数提高是指把小于 int 或 unsigned int 的整数类型转换为 int 或 unsigned int 的过程。设计

5.若是一个运算符两边的运算数类型不一样,先要将其转换为相同的类型,即较低类型转换为较高类型,而后再参加运算. (char to int,int to unsigned,long to double)指针

 

2.错误处理:

 

 

C 语言不提供对错误处理的直接支持,可是做为一种系统编程语言,它以返回值的形式容许您访问底层数据。

在发生错误时,大多数的 C 或 UNIX 函数调用返回 1 或 NULL,同时会设置一个错误代码 errno,该错误代码是全局变量,表示在函数调用期间发生了错误。您能够在 errno.h 头文件中找到各类各样的错误代码。

因此,C 程序员能够经过检查返回值,而后根据返回值决定采起哪一种适当的动做。开发人员应该在程序初始化时,把 errno 设置为 0,这是一种良好的编程习惯。0 值表示程序中没有错误。

 

C 语言提供了如下函数来显示与 errno 相关的文本消息:

 

perror()  (函数显示您传给它的字符串,后跟一个冒号、一个空格和当前 errno 值的文本表示形式。)

strerror()  (函数,返回一个指针,指针指向当前 errno 值的文本表示形式。)

 

exit状态是一种宏,能够用于控制程序的结束:

 

exit(EXIT_FAILURE);

exit(EXIT_SUCCESS);

 

顾名思义,成功就是无错误,反之。 EXIT_SUCCESS通常被定义为0,而EXIT_FAILURE通常是-1.

 

3.递归(recursion):

 

递归指的是在函数的定义中使用函数自身的方法。 

 

递归的逻辑就是以一样的方法,处理一样的问题,可是每次处理的对象也都逐渐变小。

举个生活的例子,就好像你扔出了一卷卷纸,你想要恢复原样只能一圈圈的把卷纸转回去。

 

如下几点须要注意:

a.递归很是重要,使用递归时,程序员须要注意定义一个从函数退出的条件,不然会进入死循环。

 

 

b.递归函数在解决许多数学问题上起了相当重要的做用,好比计算一个数的阶乘生成斐波那契数列,等等。

 

c.使用递归是要付出代价的。与直接的语句(如while循环)相比,递归函数会耗费更多的运行时间,而且要占用大量的栈空间。递归函数每次调用自身时,都须要把它的状态存到栈中,以便在它调用完自身后,程序能够返回到它原来的状态。未经精心设计的递归函数老是会带来麻烦。

 

 

 

引用和例子:

https://www.runoob.com/cprogramming/c-type-casting.html

https://www.runoob.com/cprogramming/c-error-handling.html

https://www.runoob.com/cprogramming/c-recursion.html

相关文章
相关标签/搜索