c语言函数

C语言入门

淺唱寂寞╮ 提交于 2020-04-07 16:43:48
文章转自 https://www.imooc.com/course/programdetail/pid/37 c语言入门 C语言一经出现就以其功能丰富、表达能力强、灵活方便、应用面广等特点迅速在全世界普及和推广。C语言不但执行效率高而且可移植性好,可以用来开发应用软件、驱动、操作系统等。C语言也是其它众多高级语言的鼻祖语言,所以说学习C语言是进入编程世界的必修课。 hello,world #include<stdio.h> int main() { /*在双引号中间输入Hello World*/ printf("Hello World"); return 0; } 注:在最新的C标准中,main函数前的类型为 int 而不是 void c语言的具体结构 简单来说,一个C程序就是由若干 头文件 和 函数 组成。 #include <stdio.h> 就是一条预处理命令, 它的作用是通知C语言编译系统在对C程序进行正式编译之前需做一些预处理工作。 函数 就是实现代码逻辑的一个小的 单元 。 必不可少之主函数 一个C程序有且只有一个主函数,即 main 函数。 C程序就是执行主函数里的代码,也可以说这个 主函数 就是C语言中的 唯一入口 。 而 main 前面的 int 就是主函数的类型. printf() 是 格式输出 函数,这里就记住它的功能就是在 屏幕上输出指定的信息 return

C语言综合运用-------------编写 < 通讯录 >

半城伤御伤魂 提交于 2020-04-07 13:29:18
// // main.c // 通讯录项目 // // Created by Elkins.Zhao on 15/3/24. // Copyright (c) 2015年 elkins. All rights reserved. // #include <stdio.h> // 导入头文件 #include <string.h> // 定义宏(联系人数组的长度,姓名长度,电话号码长度) #define LEN 100 #define NAME_LEN 22 #define TELNUM_LEN 16 // 定义联系人结构体 typedef struct { // 定义联系人姓名 char name[NAME_LEN]; // 定义联系人电话号码 char telNum[TELNUM_LEN]; } Person; // 给结构体起别名 // 定义联系人数组 Person contacts[LEN]; // 定义变量保存联系人数量 int totalContactCount = 0; // 初始化为0,表示通讯录没有人 // 定义变量保存文件名称 char *filePath = "telbook.data"; // 定义函数并声明 void doAdd(); // 添加联系人 void doDelete(); // 删除联系人 void doUpdate(); // 更新联系人

C语言字符串操作详细总结

拥有回忆 提交于 2020-04-07 11:34:55
1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符串 strlen(p) 取字符串长度 strcmp(p, p1) 比较字符串 strcasecmp忽略大小写比较字符串 strncmp(p, p1, n) 比较指定长度字符串 strchr(p, c) 在字符串中查找指定字符 strrchr(p, c) 在字符串中反向查找 strstr(p, p1) 查找字符串 strpbrk(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找该集合的任一元素 strspn(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找不属于该集合的任一元素的偏移 strcspn(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找属于该集合的任一元素的偏移 * 具有指定长度的字符串处理函数在已处理的字符串之后填补零结尾符 2)字符串到数值类型的转换 strtod(p, ppend) 从字符串 p 中转换 double 类型数值,并将后续的字符串指针存储到 ppend 指向的 char* 类型存储。 strtol(p, ppend, base) 从字符串 p 中转换 long 类型整型数值,base 显式设置转换的整型进制

【C语言】23-typedef

久未见 提交于 2020-04-07 07:32:26
一、typedef作用简介 * 我们可以使用typedef关键字为各种数据类型定义一个新名字(别名)。 1 #include <stdio.h> 2 3 typedef int Integer; 4 typedef unsigned int UInterger; 5 6 typedef float Float; 7 8 int main(int argc, const char * argv[]) { 9 Integer i = -10; 10 UInterger ui = 11; 11 12 Float f = 12.39f; 13 14 printf("%d %d %.2f", i, ui, f); 15 16 return 0; 17 } 在第3、第4、第6行分别给int、unsigned int、float起了个别名,然后在main函数中使用别名定义变量,用来跟原来的基本类型是完全一样的。输出结果: 当然,给类型起别名后,原来的int、float还是可以正常使用的: int i = 10; float f = 10.0f; * 也可以在别名的基础上再起一个别名 typedef int Integer; typedef Integer MyInteger; 二、typedef与指针 除开可以给基本数据类型起别名,typedef也可以给指针起别名 1 #include

C语言中 *.c和*.h文件的区别!

泪湿孤枕 提交于 2020-04-06 13:19:41
C语言中 *.c和*.h文件的区别! http://blog.163.com/jiaoruijun07@126/blog/static/68943278201042064246409/ 这是HR面试我的一道题,没技术上含量,不过细想起来,还是C语言的最基本的知识!俗话说,目标决定动力,细节决定成败! C文件就是C语言系列的源文件,而H文件则是C语言的头文件,即C系列中存放函数和全局变量的文件,因为C中的函数是被封装起来的,即无法看到其代码。 子程序不要定义在*.h中。函数定义要放在*.c中,而*.h只做声明.否则多引用几次,就会发生函数重复定义的错误。*.h只做声明,编译后不产生代码。这样做目的是为了实现软件的模块化,使软件结构清晰,而且也便于别人使用你写的程序。 纯粹用 C 语言语法的角度,你当然可以在*.h 中放任何东西,因为 #include 完全等价于把*.h 文件 Ctrl-C Ctrl-V 到*.c 中,*.h 中应该都是一些宏定义和变量、函数声明,告诉别人你的程序“能干什么、该怎么用”。*.c 中是所有变量和函数的定义,告诉计算机你的程序“该怎么实现”。当然,如果一个*.h 被多个*.c 包含,而且*.h 中有对象(变量或函数)的定义,就会发生重复定义的错误了,声明可以无穷多次,定义只能一次。 一般来说,一个C文件应该是一个模块,如果你的程序仅仅有一个模块

C语言编程优化运行速度

混江龙づ霸主 提交于 2020-04-06 04:02:18
1、选择合适的算法和数据结构 选择一种合适的数据结构很重要,如果在一堆随机存放的数中使用了大量的插入和删除指令,那使用链表要快得多。数组与指针语句具有十分密切的关系,一般来说,指针比较灵活简洁,而数组则比较直观,容易理解。对于大部分的编译器,使用指针比使用数组生成的代码更短,执行效率更高。 在许多种情况下,可以用指针运算代替数组索引,这样做常常能产生又快又短的代码。与数组索引相比,指针一般能使代码速度更快,占用空间更少。使用多维数组时差异更明显。下面的代码作用是相同的,但是效率不一样。 数组索引 指针运算 For(;;){ p=array A=array[t++]; for(;;){ a=*(p++); 。。。。。。。。。 。。。。。。 } } 指针方法的优点是, array 的地址每次装入地址 p 后,在每次循环中只需对 p 增量操作。在数组索引方法中,每次循环中都必须根据 t 值求数组下标的复杂运算。 2、使用尽量小的数据类型 能够使用字符型 (char) 定义的变量,就不要使用整型 (int) 变量来定义;能够使用整型变量定义的变量就不要用长整型 (long int) ,能不使用浮点型 (float) 变量就不要使用浮点型变量。当然,在定义变量后不要超过变量的作用范围,如果超过变量的范围赋值, C 编译器并不报错,但程序运行结果却错了,而且这样的错误很难发现。 在

c语言中的代码优化《转》

痴心易碎 提交于 2020-04-06 03:03:44
在性能优化方面永远注意80-20原则,即20%的程序消耗了80%的运行时间,因而我们要改进效率,最主要是考虑改进那20%的代码。不要优化程序中开销不大的那80%,这是劳而无功的。 第一招:以空间换时间   计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招--以空间换时间。比如说字符串的赋值: 方法A:通常的办法 #define LEN 32 char string1 [LEN]; memset (string1,0,LEN); strcpy (string1,"This is a example!!"); 方法B: const char string2[LEN] ="This is a example!"; char * cp; cp = string2 使用的时候可以直接用指针来操作。 从上面的例子可以看出,A和B的效率是不能比的。在同样的存储空间下,B直接使用指针就可以操作了,而A需要调用两个字符函数才能完成。B的缺点在于灵活 性没有A好。在需要频繁更改一个字符串内容的时候,A具有更好的灵活性;如果采用方法B,则需要预存许多字符串,虽然占用了大量的内存,但是获得了程序执 行的高效率。 如果系统的实时性要求很高,内存还有一些,那我推荐你使用该招数。 第二招: 使用宏而不是函数。   这也是第一招的变招

c语言的typedef

浪尽此生 提交于 2020-04-04 22:33:43
一、typedef作用简介 1.作用:给已经存在的类型起一个新的名称 2.使用场合: 1> 基本数据类型 2> 指针 3> 结构体 4> 枚举 5> 指向函数的指针 * 我们可以使用typedef关键字为各种数据类型定义一个新名字(别名)。 1 #include <stdio.h> 2 3 typedef int MyInt; 4 typedef MyInt MyInt2; 5 int main() 6 { 7 // 定义结构体变量 8 int a; 9 MyInt i = 10; 10 MyInt2 c = 20; 11 12 13 printf("i is %d\n", i); 14 printf("c is %d\n", c); 15 16 return 0; 17 } 1 #include <stdio.h> 2 3 typedef int Integer; 4 typedef unsigned int UInterger; 5 6 typedef float Float; 7 8 int main(int argc, const char * argv[]) { 9 Integer i = -10; 10 UInterger ui = 11; 11 12 Float f = 12.39f; 13 14 printf("%d %d %.2f", i, ui, f); 15

【C语言】23-typedef

ぃ、小莉子 提交于 2020-04-04 21:11:51
本文目录 一、typedef作用简介 二、typedef与指针 三、typedef与结构体 三、typedef与指向结构体的指针 四、typedef与枚举类型 五、typedef与指向函数的指针 六、typedef与#define 说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略 这讲介绍C语言中很常用的一个关键字---typedef。 回到顶部 一、typedef作用简介 * 我们可以使用typedef关键字为各种数据类型定义一个新名字(别名)。 1 #include <stdio.h> 2 3 typedef int Integer; 4 typedef unsigned int UInterger; 5 6 typedef float Float; 7 8 int main(int argc, const char * argv[]) { 9 Integer i = -10; 10 UInterger ui = 11; 11 12 Float f = 12.39f; 13 14 printf("%d %d %.2f", i, ui, f); 15 16 return 0; 17 } 在第3、第4、第6行分别给int、unsigned int

c语言文件读写操作

…衆ロ難τιáo~ 提交于 2020-04-04 01:25:06
c语言读写文件操作函数位于stdio.h头文件 读文件:fgetc(按字符)、fgets(按字符串)、fread(按数据块)、fscanf(按指定格式化); 写文件:fputc(按字符)、fputs(按字符串)、fwrite(按数据块)、fprintf(按指定格式化); 主要涉及操作函数:fopen、fclose; fopen: 解释: 函数原型:FILE * __cdecl fopen(_In_z_ const char * _Filename, _In_z_ const char * _Mode); 说明: 参数:_Filename--文件路径、_Mode--文件操作模式(读,写,追加) 返回值:文件顺利打开后,指向该流的 文件指针 就会被返回。如果文件打开失败则返回 NULL ,并把 错误代码 存在errno 中; (更详细的资料请移步: http://baike.baidu.com/view/656681.htm ) fgetc: 解释:意为从 文件指针 stream指向的文件中读取一个字符,读取一个字节后,光标位置后移一个字节; 函数原型:int __cdecl fgetc(_Inout_ FILE * _File); 说明: 参数:_File--指向FILE类型的指针 返回值:返回所读取的一个字节,如果读到文件末尾或者读取出错时返回EOF; 例程: void readc