![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
维欣~
这个作者很懒,什么都没留下…
展开
-
C语言之“文件”的故事
文件一、简介1、文件简介2、文件的分类3、输入流和输出流4、标准输入输出设备5、文件唯一的文件标识——文件名6、文件系统7、文件缓冲系统二、文件类型指针1、简介2、相关函数一、简介1、文件简介存储在外存上面的数据的集合外存:磁盘等内存:特点是断电不保护2、文件的分类(1)二进制文件:不能直接打开,必须通过特定的应用程序,比如:歌、图片等一本来说存储数据都用二进制来存储(2)文本文...原创 2020-04-06 20:17:57 · 132 阅读 · 0 评论 -
了解结构体(typedef)
一、结构体的定义1、定义bir这个变量,这个变量中包含day、month、year三个变量struct bir{ int day; int month; int year;};2、结构体中可以定义另一个结构体变量struct bir{ int day; int month; int year;};struct Student{ char name[20]; i...原创 2020-04-06 12:38:33 · 2066 阅读 · 0 评论 -
关于内存分配函数的那些事
一、malloc函数1、使用完毕需手动释放内存空间2、从堆上分配3、返回值类型为void*,如果内存分配失败就会返回NULL则用malloc函数开辟动态内存后一定要判断函数返回值是否为NULL4、函数原型:void* malloc (size_t);5、用法举例:int *p;p=(int*)malloc(30*sizeof(int));开辟了30个int类型的空间,然后把p指...原创 2020-04-04 20:12:02 · 167 阅读 · 0 评论 -
内存分配及存储
内存分配及存储一、C语言的几个存储区(一)堆和栈的区别(二)全局区(静态区)(三)常量区(四)程序代码区二、存储类型关键字(一)auto变量(二)static变量(三)register寄存器变量(四)extern外部变量(全局变量)(五)附图解一、C语言的几个存储区(一)堆和栈的区别1、申请方式栈(stack):由编译器操作系统自动分配,自动开辟空间和管理。堆(heap):由程序员自己申...原创 2020-04-04 18:33:50 · 186 阅读 · 0 评论 -
递归(二)——汉诺塔问题
汉诺塔(经典的递归)有A、B、C三根柱子,每次只能移动一个盘子,移动中三根杆上必须是大盘在下小盘在上基本思想:(假设4个盘子)初始状态由上图进行A->B A->C B->C得到由上图进行A->B C->A C->B得到由上图进行A->B A->C B->C B-&...原创 2020-04-03 14:06:53 · 98 阅读 · 0 评论 -
什么是递归?以及斐波那契数列的实现(一)
一、第一个人10岁,每个人比下一个人大两岁int Age(int n){ int tmp; if (n == 1) { return 10; } tmp = Age(n - 1) + 2; return tmp;}int main(){ printf("%d\n", Age(2)); return 0;}递归实际的运行形式当n=5时,调用Age(5)进入内...原创 2020-04-03 13:27:43 · 143 阅读 · 0 评论 -
关于isalpha——计算英文单词的个数
计算英文单词的个数1,最简单的形式ad fad adf,//前一个是空格,后一个不是空格,则表示这是一个英文单词这是一个int WordNum(const char *str){ int flg = 0;//用0表示空格,1表示字母 int count = 0; while (*str!= '\0') { if (*str == ' ') { flg = 0; }...原创 2020-04-02 17:12:27 · 281 阅读 · 0 评论 -
strcpy的越界问题
字符串的复制函数#include<stdio.h>#include<string.h>/*(1)int main(){ char str1[10]; char str2[] = "asdfgg"; //1, /*strcpy(str1, str2); printf("%s\n", str1);*/ //2,strcpy()函数可以直接作为printf的...原创 2020-04-02 15:10:02 · 1020 阅读 · 0 评论 -
字符串的复制、连接、比较和转换
字符串相关函数一、字符串的复制1、指针形式2、数组形式二、字符串的连接三、字符串的比较四、字符串与数字之间的转换1、将数字转为字符串形式//1234->"1234"2、将数字字符串转为数字形式 //"1234"->1234,"a123"->0,"12a34"->12一、字符串的复制1、指针形式void Mystrcpy(char *des, const char *s...原创 2020-04-01 14:06:04 · 424 阅读 · 0 评论 -
值传递和址传递
指针参数1、error1 值传递`void Swap1(int a, int b){ int tmp = a; a = b; b = tmp;}`int main(){ int a = 10; int b = 20; printf("%d %d\n", a, b); Swap1(a, b); printf("%d %d\n", a, b); return 0;}...原创 2020-03-31 14:26:35 · 98 阅读 · 0 评论 -
斐波那契数列
斐波那契数列1.定义:第一个和第二位为1,从第三位开始,每后一位数都是前两位数字之和。即1 1 2 3 5 8 13…2.用递归函数 ——在函数体内调用自身(1) 执行递归函数将反复调用其自身,每调用一次就进入新的一层,如下图(2)特点每调用一次,函数都有变量的改变,但代码不会得到复制每次调用,函数都会将值返回,然后进行下一次递归函数必须有终止语句总结:递归函数有自我调用能...原创 2020-03-30 23:10:05 · 368 阅读 · 0 评论 -
【C语言】结构体与内存对齐
一、结构体1、结构体中成员变量的存储空间分配采用按字节“对齐”的方法2、offsetof : 计算结构体变量在内存中的偏移量3、#define offsetof 的实现例:#define offsetof(s,t)(size_t)&(((struct s*)0)-->c)二、结构体内存对齐规则1、结构体中第一个成员必须存在偏移量为0的位置处2、其他成员变量存放在自身对...原创 2019-03-31 19:20:07 · 104 阅读 · 1 评论 -
【C语言】strlen函数的模拟实现
一、基本介绍1、作用:计算字符串的长度2、字符串以’\0’作为结束标志,strlen函数返回的是’\0’之前的字符个数,即遇到’\0’时,计算结束(区别于sizeof函数3、格式size_t strlen ( const char * str );4、函数的返回值为size_t,是无符号的5、调用strlen函数时,需要包含在 string.h 中二、模拟实现1、方法1:计数器法...原创 2019-03-15 18:50:28 · 147 阅读 · 1 评论 -
const的使用
const的使用一、作用:定义常变量,不允许修改其值 。例如 int const ca = 10;二、规则:1、基本的数据类型对于const是透明的。int const ca = 0;const int cb=0;ca和cb是等价的2、const 限定它的直接右边3、权限可以缩小或者同等传递,但不能放大int main(){ int a = 10;int b = 20; co...原创 2019-03-02 13:53:10 · 97 阅读 · 0 评论