c语言
文章平均质量分 66
flyyyya
这个作者很懒,什么都没留下…
展开
-
C语言之递归的应用
C语言之递归的应用一、什么是递归二、递归模板三、递归的实际应用1.阶乘递归2.斐波那契数列四、递归的经典问题汉诺塔问题青蛙跳台阶一、什么是递归递归简单的来说就是在函数中调用自己它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的两个必要条件:存在限制条件,当满足这个限制条件的时候,递归便不再继续。每次递归调用之后越来越接近这个限制条件。二、递归模板void recursion原创 2021-08-31 21:33:24 · 938 阅读 · 12 评论 -
从c到c++的必备基础知识
首先我们必须要知道,c++兼容c的语法,适合用哪一门语法用那一门我们开始学一门语言之前,先用c++的语法打出一行hello world#include<ostream>using namespace std;int main(){ cout << "hello word" << endl; return 0;}在这里我们可以看到,c++要打上一行using namespace std,这是什么意思呢?接下来介绍一下命名空间。命名空间在C/C++中原创 2021-05-25 08:30:48 · 591 阅读 · 10 评论 -
c语言文件操作
什么是文件我们一般谈的文件有两种:程序文件、数据文件程序文件:包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀为.exe)。数据文件:文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件。...原创 2021-03-24 21:12:41 · 282 阅读 · 3 评论 -
C语言实现通讯录的功能和动态内存分配
为了确保通讯录实现的功能性和规范性,我们创建一个头文件和两个源文件来实现。1.创建一个简易的菜单void menu(){ printf("***********************"); printf("********1.add*****2.del*********"); printf("********3.search**4.modify**********"); printf("********5.show****6.sort*********"); printf("*******原创 2021-03-13 14:39:23 · 2998 阅读 · 13 评论 -
自定义类型结构体(位段)+枚举+联合体超级详解
自定义类型1.结构体一,结构体的定义结构是一些值得集合,这些值统称为成员变量,结构的每个成员可以是不同类型的变量。struct tag{memlist//成员变量}variable-list//变量;2.typedef定义的structtypedef struct book{ //成员变量 char name[20]; char author[20]; short price;}book;book现在是个类型,在主函数中相当于struct book.3.匿名结构体类型特原创 2021-03-10 12:54:27 · 2896 阅读 · 11 评论 -
HelloWorld
Hello world作为一名双非本科大一的新手程序员,未来的目标是加入互联网大厂,例如腾讯,百度等。我知道这很有难度,但是既然选择了远方,便只顾风雨兼程。以下是我的学习计划**1.**创建一个github用户,并每星期至少五天打代码。**2.**在兼顾学业的同时,参加学校内举办的编程竞赛名额选拔。**3.**在一年内学完关于c语言,数据结构,c++,算法的基本知识。**4.**在大二下半年开始java的学习。如何学习编程我认为,学习编程不仅要看书,还要好的老师配合,我会去找b站上教c语言的原创 2021-01-10 22:38:17 · 510 阅读 · 1 评论 -
qsort函数的使用及拓展
认识qsort函数可以排序任意类型的数据base:待排序的数组num:数组元素的个数width:每个元素的大小compare:这是一个函数指针,指向的是一个来比较相邻两个元素的大小的函数。由于e1,e2参数都是void*类型的指针,而此种类型的指针是不能解引用和++/–的,所以我们在比较时都要进行强制类型转换。应用1.排序整型数组int cmp_int(const void*e1, const void*e2){ return (*(int*)e1 - *(int*)e2);}v原创 2021-02-23 09:28:24 · 172 阅读 · 1 评论 -
字符串操作函数和内存函数详解
字符串操作函数的实现1.strlen函数函数功能:计算指定的字符串string的长度。应用int main(){ char* str = "abcdef"; printf("%d\n",strlen(str)); return 0;}模拟实现strlen函数1.计数器实现#include<stdio.h>#include<assert.h>int my_strlen(const char*str)//字符串长度是不变的,用const修饰{ a原创 2021-02-16 17:54:11 · 5079 阅读 · 9 评论 -
玩转指针重难点(3)
习题篇1.#include<stdio.h>int main(){ int a[5] = { 1, 2, 3, 4, 5 }; int *ptr = (int *)(&a + 1); printf( "%d,%d", *(a + 1), *(ptr - 1)); return 0; }这道题*(a+1)简单,就是数组首元素地址+1算出来的就是2。关键是第二个题,用来存放&a的是数组指针也就是int (*)[5],但前面有个整型指针的强原创 2021-02-10 16:34:49 · 2829 阅读 · 1 评论 -
玩转指针重难点(2)
函数指针定义:指向函数的指针,用来存放函数的地址这里我们举一个小例子int Add(int x, int y){ return x + y;}int main(){ int a = 10; int *pa = &a;//pa就是整型指针 char arr[5] = { 0 }; char(*parr)[5] = &arr;//parr就是数组指针 printf("%p\n", &Add); int(*pf)(int,int) = &Add;//pf原创 2021-02-08 19:12:50 · 699 阅读 · 1 评论 -
玩转指针重难点(1)
一、字符指针1.字符指针的两种写法int main(){ char ch = 'a'; char*pc = &ch; char*p = "abcdef"; //将首字符a的地址放入p中 return 0;}既可以用取址符号,也可以双引号加字符,这里的abcdef是一个常量字符串,是不能改的。二、指针数组简单的来说,就是存放指针的数组。int main(){ int *arr[10]; char*ch[20]; return 0;}三、数组指针本质上是指针原创 2021-02-08 11:15:39 · 1386 阅读 · 0 评论 -
数据在内存中的存储
数据在整数中的存储1.源码,反码,补码首先我们先了解一下原码,反码,补码的概念:计算机中的有符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位三种表示方法各不相同。原码:直接将二进制按照正负数的形式翻译成二进制就可以。反码:将原码的符号位不变,其他位依次按位取反就可以得到了。补码:反码 + 1得到补码注意:最高位为符号位,正数的原、反、补码都相同。对于整形来说:数据存放内存中其实存放的是补码。int m原创 2021-02-07 13:02:32 · 5477 阅读 · 7 评论 -
初识指针易混淆点(二)
探究问题1.指针的运算①指针加减整数指针每加一个整数,就是往后访问了一个该类型的字节数。int main(){ int arr[5] = { 0 }; int *p = arr; int i = 0; for (i = 0; i < 5; i++) { *(p + i)=i; } return 0;}②指针减指针指针减指针算出来的绝对值是两个指针间的元素个数。前提条件,两个指针指向的是同一块相同的空间,也就是说两个指针是同一个数组的。int main(){原创 2021-01-31 18:14:26 · 842 阅读 · 1 评论