摘要:
errno C语言不提供对错误处理的直接支持。 以返回值的形式表示是否出错。 在发生错误时,大多数的C函数调用返回1或NULL。 同时设置一个错误代码errno(全局变量),表示在函数调用期间发生了错误。 可以通过检查返回值,然后根据返回值决定怎么处理 把errno设置为0(没有错误),是一种良好的 阅读全文
摘要:
如果一些函数被频繁调用,不断地有函数入栈(Stack),会造成栈空间的大量消耗。 对应这种问题,可以使用内联函数(inline)。 编译器会将内联函数的代码整段插入到调用的位置。 c include inline int parity(int a) { return (a % 2 0) ? 1 : 阅读全文
摘要:
C预处理器是一个文本替换工具,在实际编译之前完成一些预先的处理。 C预处理器(C Preprocessor)简写为 CPP 预处理器命令都是以 开头,如: define定义宏 1. 代码文本替换 2. 增强可读性 系统提供的预定义宏 | __DATE__ | 当前日期 | 字符串常量 | | | | 阅读全文
摘要:
结构体是一种变量类型,可以包含多个变量(变量类型不必相同)。 结构体的关键字是struct也是一种值类型。 例:设计一个表示“书本”的结构体: 说明:结构体中包含了double类型和char数组(表示字符串) 结构体是多个变量的集合,通过结构体加点【.】加内部变量名的形式,可以获得结构体中的字段。 阅读全文
摘要:
字符串库函数 | 求字符串长度(不含结束符’\0’ ) | strlen(str) | | | | | 字符串赋值(可能造成数组越界) | strcpy(str," 水浒传 "); | | 字符串追加(可能造成数组越界) | strcat(str," 三国演义 ") | | 字符串比较(小于: 1/ 阅读全文
摘要:
字符数组 C语言字符串就是字符数组。 单写字符,用单引号。如:’A’。 字符串用双引号。如:”A”、”ABC”。 ASCII码: | 字符 | 十进制数 | | | | | ‘0’ | 48 | | ‘A’ | 65 | | ‘a’ | 97 | 输出内容的换行:\n (这是一个字符’\n’) 打码 阅读全文
摘要:
指针函数 返回值是指针的函数,如void malloc(...) 函数中创建“数组” c include int addition(int x,int y) { return (x+y); } int subtraction(int x,int y) { return (x y); } int mu 阅读全文
摘要:
数组名表示的是这个数组的首地址。即如果有int a[10],则a 相当于&a[0]。 运行结果: 指针遍历数组 指针版字符串常量 “指针版”字符串常量可像数组一样输出,不能修改,但可以直接赋值。 指针版字符串复制 字符串转置 c include include main() { char str[] 阅读全文
摘要:
动态分配内存 动态分配内存,在堆(heap)中分配。 头文件 stdlib.h或malloc.h 向系统申请分配size个字节的内存空间 返回void 类型(未确定类型的指针) 可强制转换为任何类型的指针 头文件 string.h或memory.h 将内存空间s的前n个字节的值设为值c 二级指针 二 阅读全文
摘要:
传值 值类型在做参数的时候,函数内使用的是实参的 副本 。 函数执行完毕后,即使函数内对参数做了修改,调用方的参数还是原来的值。 运行结果: 传引用 将地址传入参数,在地址指向的内存空间中修改具体的值,则调用方亦可取也。 运行结果: 练习:返回值,返回参数 定义一个函数,要求能够同时得到一个整型数组 阅读全文