
C语言
文章平均质量分 78
dcw142857
一直在学习的路上
展开
-
STM32单片机的学习方法(方法大体适用所有开发版入门)
1,一款实用的开发板。这个是实验的基础,有时候软件仿真通过了,在板上并不一定能跑起来,而且有个开发板在手,什么东西都可以直观的看到,效果不是仿真能比的。但开发板不宜多,多了的话连自己都不知道该学哪个了,觉得这个也还可以,那个也不错,那就这个学半天,那个学半天,结果学个四不像。倒不如从一而终,学完一个在学另外一个。2,两本参考资料,即《STM32 参考手册》和《Cortex-M3 权威指南》。《STM32 参考手册》是 ST 出的官方资料,有 STM32 的详细介绍,包括了 STM32 的各种寄存器定义转载 2021-02-24 16:37:29 · 3031 阅读 · 0 评论 -
c语言编程基础入门必备资料
数据类型基本数据类型类型名称说明char字符类型存放字符的ASCII码int整型存放有符号整数short短整型存放有符号整数long长整型存放有符号整数long long存放有符号整数float单精度浮点型存放精度不高的小数double双精度浮点型存放精度较高的小数除了这些基本数据类型之外,还有一些复合类型,后面会慢慢讲到.表格中最常用到的四种类型是 char int float 和double.类型介绍根据存放类型的不同,可以大致分为字符型,整型和浮点型整型存放整数的类型 比如0 1 2转载 2021-02-20 16:46:13 · 546 阅读 · 0 评论 -
解决Linux 下server和client 通过TCP通讯:accept成功接收却报错的问题
今天在写简单的TCP通讯例子的时候,遇到了一个问题:server 和client能够连接成功,并且client也能够正常发送,但server就是接收不到,在网上搜索一番后,终于解决了问题。在这里整理如下:大家要注意的是,一个server端可以连接多个client端,server端的accept()函数负责等待并接收client的连接请求,而且accept()函数将不同client端的sockfd作为返回值。为了保证接收到对应的client端数据,所以在client连接成功且使用recv()函数接收数据的时转载 2020-12-30 15:32:32 · 885 阅读 · 0 评论 -
零基础小白看过来要如何利用指针间接赋值
我们都知道,指针是指向一段内存空间的。而这个内存空间也可以存放下一个内存空间的地址,这样一级级的传递下去,就变成了多级指针。在C语言中,多级指针是经常会用到的。多级指针像一把双刃剑,有利也有弊。你能够用它完成一些奇淫技巧,也会遇到一些不可捉摸的错误。其中,指针有一个非常重要的作用:间接赋值。你能够通过n级指针去修改n-1级指针的内容,甚至直接修改指针所指向的内存空间例如:你在main函数里面声明了一个字符串指针,然后你想通过调用一个外部函数来修改它。这个时候,你就可以将这个字符串指针的地址传递给函转载 2020-12-24 15:38:46 · 262 阅读 · 1 评论 -
野指针和free总结超有用
在C语言项目中,经常会遇到需要程序员手动分配内存的地方。这样做能够节省大量的内存空间,也让程序更加灵活。只要你有一定的基础,那么肯定用过 malloc 或者 ralloc和free的组合。这个组合使用起来有一个需要注意的地方,不知道你有没有发现。野指针是什么?根据百度百科的说法,野指针是指 指向一个已删除的对象或未申请访问受限内存区域的指针.我这里是这样理解的,野指针就是指向的内存区域不合法,这里的不合法主要包括以下几个方面:所指向的内存未申请2.所指向的内存被释放当你访问一个未申请的内存区域转载 2020-12-23 16:42:55 · 472 阅读 · 1 评论 -
c语言如何利用指针间接赋值
我们都知道,指针是指向一段内存空间的。而这个内存空间也可以存放下一个内存空间的地址,这样一级级的传递下去,就变成了多级指针。在C语言中,多级指针是经常会用到的。多级指针像一把双刃剑,有利也有弊。你能够用它完成一些奇淫技巧,也会遇到一些不可捉摸的错误。其中,指针有一个非常重要的作用:间接赋值。你能够通过n级指针去修改n-1级指针的内容,甚至直接修改指针所指向的内存空间例如:你在main函数里面声明了一个字符串指针,然后你想通过调用一个外部函数来修改它。这个时候,你就可以将这个字符串指针的地址传递给函转载 2020-12-17 16:32:34 · 361 阅读 · 0 评论 -
STM32端口输入输出模式配置
STM32的IO口模式配置根据数据手册提供的信息,stm32的io口一共有八种模式,他们分别是:四种输入模式上拉输入:通过内部的上拉电阻将一个不确定的信号通过一个电阻拉到高电平。下拉输入:把电压拉到GND。与上拉原理相似。浮空输入:引脚内部什么都不接,处于浮空模式下,电平状态是不确定的。外部信号输入什么,IO口就是什么状态。模拟输入:接收到的是连续的模拟信号,一般用于AD转换。四种输出模式推挽输出:可以输出高低电平,连接数字器件。在stm32中推挽电路由两个MOS管组成:输出高电平时P-MO转载 2020-12-15 13:49:54 · 1727 阅读 · 0 评论 -
零基础入门单向链表的:增,删,改,查
该链表拥有一个头节点,头节点中的数据域用来存储链表的节点个数,指针域指向第一个数据节点。以下是代码。链表结构体定义:struct ListNode{int num;struct ListNode* next;};typedef struct ListNode Node; //重命名为Node创建头节点Node *head = (Node *)malloc(sizeof(Node)); //创建头节点增加节点函数:在链表尾部增加一个节点int AddNode(Node *head)转载 2020-12-09 10:04:48 · 165 阅读 · 0 评论 -
C语言基础知识总结大全
1.入门程序#include <stdio.h>int main(){printf(“Hello World!”);return 0;}2.数据类型数据类型:1.基本数据类型:1.1. 整型:int 4个字节1.2. 字符型:char 1个字节1.3. 实型(浮点型)1.3.1.单精度型:float 4个字节1.3.2.双精度型:double 8个字节2.构造类型:2.1.枚举类型2.2.数组类型2.3.结构体类型2.4.共用体类型3.指针类型:4.空类转载 2020-12-08 13:53:50 · 1516 阅读 · 0 评论 -
C/C++编程笔记:浪漫流星雨装b表白程序
作为一个未来可能会成为一个专业程序员的小伙们,不知道你们现在学到哪里了,学了点东西之后有没有想在你女朋友面前装个大大的b呢,今天小编就给你一个机会来研究一下下边的代码吧,保证大写的N,当然大佬是排除在外的!直接源码分享:#include#include //图形库:easyX201905#include#include#define MAXSTAR 1314#define MAXMETEOR 520//结构体//几个星星:1000struct Star{int x, y;int c转载 2020-11-26 15:46:11 · 2810 阅读 · 0 评论 -
零基础学c语言需要了解的特色
今天跟大家一起从零学C语言:1. C语言简介1.1 C语言发展史C语言是一种广泛使用的面向过程的计算机程序设计语言,既适合于系统程序设计,又适合于应用程序设计。C语言的发展历程大致如图1-1所示:图1-1 C语言的发展历程1.2 C语言的特点C语言是一种通用的程序设计语言,语言本身简洁、灵活、表达能力强,被广泛用于系统软件和应用软件的开发,并且具有良好的可移植性。C语言的特点可概括如下:(1)简洁、紧凑、灵活。C语言的核心内容很少,只有32个关键字,9种控制语句;程序书写格式自由,压缩了一切转载 2020-10-29 09:45:09 · 286 阅读 · 0 评论 -
零基础学习c语言必背的18个有用的经典程序
1、/输出99口诀。共9行9列,i控制行,j控制列。*/#include “stdio.h”main(){int i,j,result;for (i=1;i<10;i++){ for(j=1;j<10;j++){result=i*j;printf("%d*%d=%-3d",i,j,result);/-3d表示左对齐,占3位/}printf("\n");/每一行后换行/}}2、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一转载 2020-10-21 16:16:21 · 812 阅读 · 0 评论 -
链表实例
下图为最一简单链表的示意图:第 0 个结点称为头结点,它存放有第一个结点的首地址,它没有数据,只是一个指针变量。以下的每个结点都分为两个域,一个是数据域,存放各种实际的数据,如学号 num,姓名 name,性别 sex 和成绩 score 等。另一个域为指针域,存放下一结点的首地址。链表中的每一个结点都是同一种结构类型。指针域: 即在结点结构中定义一个成员项用来存放下一结点的首地址,这个用于存放地址的成员,常把它称为指针域。在第一个结点的指针域内存入第二个结点的首地址,在第二个结点的指针域内又存放第转载 2020-10-20 09:20:10 · 337 阅读 · 0 评论 -
零基础入门c语言函数之递归函数
今天来总结一下关于递归函数的使用方面的问题。递归函数就是在函数使用的时候自己调用自己,层层调用,来实现你想要的功能。有两个最常用的例子,我们来写一下。(1)计算阶乘#includeint factorial(int n); // 函数声明(阶乘)int main(void){int a = 5;printf("%d的阶乘是:%d.\n", a, factorial(a));return 0;}int factorial(int n){if (n < 1){printf(转载 2020-10-10 11:06:01 · 231 阅读 · 0 评论 -
初学Linux如何才能跟好的学习找到自己的学习路线
本节旨在介绍对于初学者如何学习 Linux 的建议,在这里不具体分析Linux的学习节点只分析对于零基础的伙伴的学习方法。那么如果你已经确定对 Linux 产生了兴趣,那么接下来我们介绍一下学习 Linux 的方法。如何去学习学习大多类似庖丁解牛,对事物的认识一般都是由浅入深、由表及里的过程,循序才能渐进。学习 Linux 同样要有一定的顺序和方法,当然这也是你学习本教程的意义。如果你是初学者,那么建议按照本教程的顺序阅读,不要跳跃,欲速则不达,揠苗也不见得能助长。另外,强烈建议做好读书笔记,边看边记转载 2020-09-14 09:37:19 · 126 阅读 · 0 评论 -
C/C++实现你的浪漫表白:浪漫流星雨表白程序,
想要讨女朋友欢心也巩固自己所学的知识,各位小伙伴有自己的想法了吗?准备好想要怎样实施了吗?有什么美好的计划了吗?如果没有的话那么别慌,我知道,在座的各位肯定都是有自己的心仪的姑娘,那么今天就教大家一招,做一个表白程序去进行表白,别等了,赶紧打开你的IED,跟着代码敲起来,不然的话,喜欢的人都跟别人跑了!直接源码分享:#include<stdio.h>#include<graphics.h> //图形库:easyX201905#include<conio.h>转载 2020-09-09 16:01:49 · 12618 阅读 · 14 评论 -
超声波雷达测距项目实战
本实验是基于MSP430利用HC-SR04超声波传感器进行测距,测距范围是3-65cm,讲得到的数据显示在LCD 1602液晶屏上。模块工作原理如下(1)采用 IO 触发测距,给至少 10us 的高电平信号;(2)模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回;(3)有信号返回,通过 IO 输出一高电平,高电平持续的时间就是超声波从发射到返回的时间(4计算测试距离测试距离=(高电平时间*声速(340M/S))/2;根据工作原理,我们可以选择两种模式驱动1. 采用中断+定时器转载 2020-09-08 11:27:41 · 2605 阅读 · 0 评论 -
c语言指针难吗?看c语言大神怎样给你解释
C语言指针说难不难但是说容易又是最容易出错的地方,因此不管是你要做什么只要用到C指针你就跳不过,今天咱们就以十九个例子来给大家简单的分析一下指针的应用,最后会有C语言视频资料提供给大家更加深入的参考。进入今天的主题,要了解指针,多多少少会出现一些比较复杂的类型,所以我先介绍一下如何完全理解一个复杂类型,要理解复杂类型其实很简单,一个类型里会出现很多运算符,他们也像普通的表达式一样,有优先级,其优先级和运算优先级一样,所以我总结了一下其原则:从变量名处起,根据运算符优先级结合,一步一步分析.下面让我们转载 2020-09-04 17:07:06 · 836 阅读 · 0 评论 -
零基础如何更快更好的入门C语言(总结)
零基础如何更快更好的入门C语言,如何在枯燥的学习中找到属于自己的兴趣,如果把学习当成一种事务性的那以后的学习将会很难有更深入的进步,如果带着乐趣来完成学习那将越学越有意思这样才会让你有想要更深入学习的想法和态度。关键在于学习态度和是否可以把c语言学习当做一种乐趣。好了下面我们来分析一下对于零基础入门c语言需要注意哪些细节。C语言是我们在学生时期最先接触的一种编程语言,只要能把C语言学扎实对以后的会有很大的帮助,不过很同学都觉得C语言很难学,不知道怎么才能学好。想学好C语言最重要的一点是要养成良好的学习习转载 2020-08-24 15:07:08 · 350 阅读 · 0 评论 -
零基础玩转C语言单链表
下图为最一简单链表的示意图:第 0 个结点称为头结点,它存放有第一个结点的首地址,它没有数据,只是一个指针变量。以下的每个结点都分为两个域,一个是数据域,存放各种实际的数据,如学号 num,姓名 name,性别 sex 和成绩 score 等。另一个域为指针域,存放下一结点的首地址。链表中的每一个结点都是同一种结构类型。指针域: 即在结点结构中定义一个成员项用来存放下一结点的首地址,这个用于存放地址的成员,常把它称为指针域。在第一个结点的指针域内存入第二个结点的首地址,在第二个结点的指针域内转载 2020-07-29 09:42:53 · 159 阅读 · 0 评论 -
C语言过来人详细分析C语言指针
C语言指针说难不难但是说容易又是最容易出错的地方,因此不管是你要做什么只要用到C指针你就跳不过,今天咱们就以十九个例子来给大家简单的分析一下指针的应用,最后会有C语言视频资料提供给大家更加深入的参考。进入今天的主题,要了解指针,多多少少会出现一些比较复杂的类型,所以我先介绍一下如何完全理解一个复杂类型,要理解复杂类型其实很简单,一个类型里会出现很多运算符,他们也像普通的表达式一样,有优先级,其优先级和运算优先级一样,所以我总结了一下其原则:从变量名处起,根据运算符优先级结合,一步一步分析.下面让我们转载 2020-07-22 09:13:06 · 280 阅读 · 0 评论 -
C语言中.h和.c文件解析
简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程:1.预处理阶段2.词法与语法分析阶段3.编译阶段,首先编译成纯汇编语句,再将之汇编成跟CPU相关的二进制码,生成各个目标文件 (.obj文件)4.连接阶段,将各个目标文件中的各段代码进行绝对地址定位,生成跟特定平台相关的可执行文件,当然,最后还可以用objcopy生成纯二进制码,也就是去掉了文件格式信息。(生成.exe文件)编译器在编译时是以C文件为单位进行的,也就是说如果你的转载 2020-07-14 10:45:03 · 553 阅读 · 0 评论 -
零基础入门非常好的C语言基础资料
C语言程序的结构认识用一个简单的c程序例子,介绍c语言的基本构成、格式、以及良好的书写风格,使小伙伴对c语言有个初步认识。例1:计算两个整数之和的c程序:#include main() { int a,b,sum; /定义变量a,b,sum为整型变量/ a=20; /把整数20赋值给整型变量a/ b=15; /把整数15赋值给整型变量b/ sum=a+b; /把两个数之和赋值给整型变量sum/ printf(“a=%d,b=%d,sum=%d\n”,a,b,sum); /把计算结果输出到显示屏上/ }转载 2020-06-02 11:09:12 · 306 阅读 · 0 评论 -
循环链表及线性表的应用
循环链表的应用之约瑟夫环问题以及线性表总结之顺序表与链表的比较1.1问题说明问题描述:编号为1,2,···,n的n个人围坐在一圆桌旁,每人持有一个正整数的密码。从第一个人开始报数,报到一个预先约定的正整数m时,停止报数,报m的人退席,下一个人又重新从1开始报数,依此重复,直至所有的人都退席。编一程序输出他们退席的编号序列。例如,设m=20,n=7,7个人的密码依次是3,1,7,2,4,8,4,则退席的人的编号依次为6,1,7,5,3,2,4。基本要求:用不带表头结点的循环单链表表示围成圆圈的n个人;要转载 2020-05-26 10:17:58 · 277 阅读 · 0 评论 -
玩转C语言链表-链表各类操作详解
链表概述链表是一种常见的重要的数据结构。它是动态地进行存储分配的一种结构。它可以根据需要开辟内存单元。链表有一个“头指针”变量,以head表示,它存放一个地址。该地址指向一个元素。链表中每一个元素称为“结点”,每个结点都应包括两个部分:一为用户需要用的实际数据,二为下一个结点的地址。因此,head指向第一个元素:第一个元素又指向第二个元素;……,直到最后一个元素,该元素不再指向其它元素,它称为“表尾”,它的地址部分放一个“NULL”(表示“空地址”),链表到此结束。链表的各类操作包括:学习单向链表的创建转载 2020-05-25 09:29:31 · 360 阅读 · 0 评论 -
C语言字符串操作总结大全(超详细)
本篇文章是对C语言字符串操作进行了详细的总结分析,需要的朋友参考下1)字符串操作strcpy(p, p1) 复制字符串strncpy(p, p1, n) 复制指定长度字符串strcat(p, p1) 附加字符串strncat(p, p1, n) 附加指定长度字符串strlen§ 取字符串长度strcmp(p, p1) 比较字符串strcasecmp忽略大小写比较字符串strncmp(p, p1, n) 比较指定长度字符串 strchr(p, c) 在字符串中查找指定字符 strrchr(p转载 2020-05-14 09:29:00 · 827 阅读 · 0 评论 -
最容易出错的C语言指针
C语言指针说难不难但是说容易又是最容易出错的地方,因此不管是你要做什么只要用到C指针你就跳不过,今天咱们就以十九个例子来给大家简单的分析一下指针的应用,最后会有C语言视频资料提供给大家更加深入的参考。进入今天的主题,要了解指针,多多少少会出现一些比较复杂的类型,所以我先介绍一下如何完全理解一个复杂类型,要理解复杂类型其实很简单,一个类型里会出现很多运算符,他们也像普通的表达式一样,有优先级,...转载 2020-04-01 16:42:00 · 238 阅读 · 0 评论 -
C语言中都有哪些常见的数据结构你都知道几个??
上次在面试时被面试官问到学了哪些数据结构,那时简单答了栈、队列/(ㄒoㄒ)/~~其它就都想不起来了,今天有空整理了一下几种常见的数据结构,原来我们学过的数据结构有这么多~首先,先来回顾下C语言中常见的基本数据类型吧O(∩_∩)OC语言的基本数据类型有:整型int,浮点型float,字符型char等等添加描述那么,究竟什么是数据结构呢?数据结构是计算机存储、组织数据的方式。数据结构是指相...转载 2020-03-31 15:27:54 · 4144 阅读 · 0 评论 -
该如何有效的提高C/C++语言编程能力
很多答案都谈到算法的重要性,我的答案主要集中在C++上,只是一些个人经验。其实我以前也有这样的困惑,感觉完了不知道怎么用。而且我也不是学计算机的,也没有从事相关工作,所以大概有十年的时间都没写什么程序。最近因为想做点东西,所以又重新开始写。刚开始用的是python,比较好学。但是因为神经网络计算量太大了,用python效率不太够。后来用matlab写,matlab也比较方便,矩阵运算优化得很好...转载 2019-12-06 14:42:20 · 531 阅读 · 0 评论 -
C语言编程基础你搞懂了吗?
刚开始看STM32的库函数,会有很多疑惑,例如指针怎么用,结构体跟指针怎么配合,例如函数的参数有什么要求,如何实时更新IO口的数据等。如果重新进行C语言的学习,那么要学很久才能够系统地认识。本文则将比较容易想不起来的知识点进行简单的整理。1、#ifdef 和 #ifndef#ifdef 标识符A// 如果标识符A定义了,就编译程序段1,否则编译程序段2程序段1#else程序段2#end...转载 2019-12-03 15:02:09 · 197 阅读 · 0 评论 -
C语言字符串操作总结大全(超详细)
本篇文章是对C语言字符串操作进行了详细的总结分析,需要的朋友参考下1)字符串操作strcpy(p, p1) 复制字符串strncpy(p, p1, n) 复制指定长度字符串strcat(p, p1) 附加字符串strncat(p, p1, n) 附加指定长度字符串strlen§ 取字符串长度strcmp(p, p1) 比较字符串strcasecmp忽略大小写比较字符串strncm...转载 2019-12-02 15:30:52 · 244 阅读 · 0 评论 -
Linux C语言链表详细分析
链表是一种常见的基础数据结构,结构体指针在这里得到了充分的利用。链表可以动态的进行存储分配,也就是说,链表是一个功能极为强大的数组,他可以在节点中定义多种数据类型,还可以根据需要随意增添,删除,插入节点。链表都有一个头指针,一般以head来表示,存放的是一个地址。链表中的节点分为两类,头结点和一般节点,头结点是没有数据域的。链表中每个节点都分为两部分,一个数据域,一个是指针域。说到这里你应该就明白...转载 2019-11-28 09:59:10 · 182 阅读 · 0 评论 -
零基础入门之结构体字节对齐
一、字节对齐的规则:1、一般设置的对齐方式为1,2,4字节对齐方式。结构的首地址必须是结构内最宽类型的整数倍地址;另外,结构体的每一个成员起始地址必须是自身类型大小的整数倍(需要特别注意的是windows下是这样的,但在linux的gcc编译器下最高为4字节对齐),否则在前一类型后补0;这里特别提到的是数组一定要注意,而且在一些编程的技巧中,我们可以使用数组强制字节达到对齐的目的。这在网络编程中...转载 2019-11-13 14:39:36 · 251 阅读 · 0 评论 -
C语言函数指针基础
本文写的非常详细,因为我想为初学者建立一个意识模型,来帮助他们理解函数指针的语法和基础。如果你不讨厌事无巨细,请尽情阅读吧。函数指针虽然在语法上让人有些迷惑,但不失为一种有趣而强大的工具。本文将从C语言函数指针的基础开始介绍,再结合一些简单的用法和关于函数名称和地址的趣闻。在最后,本文给出一种简单的方式来看待函数指针,让你对其用法有一个更清晰的理解。函数指针和一个简单的函数我们从一个非常简单...转载 2019-11-06 14:33:33 · 286 阅读 · 0 评论 -
Linux下open与fopen的区别
int open(const char *path, int access,int mode)path 要打开的文件路径和名称access 访问模式,宏定义和含义如下:O_RDONLY 1 只读打开O_WRONLY 2 只写打开O_RDWR 4 读写打开还可选择以下模式与以上3种基本模式相与:O_CREAT ...转载 2019-10-11 14:37:50 · 156 阅读 · 0 评论 -
玩转C语言链表-链表各类操作详解
链表概述链表是一种常见的重要的数据结构。它是动态地进行存储分配的一种结构。它可以根据需要开辟内存单元。链表有一个“头指针”变量,以head表示,它存放一个地址。该地址指向一个元素。链表中每一个元素称为“结点”,每个结点都应包括两个部分:一为用户需要用的实际数据,二为下一个结点的地址。因此,head指向第一个元素:第一个元素又指向第二个元素;……,直到最后一个元素,该元素不再指向其它元素,它称为“...转载 2019-10-10 15:05:56 · 916 阅读 · 0 评论