c语言
文章平均质量分 52
斜杠青年/
人类的幸福与欢乐在于奋斗,而最有价值的是为理想而奋斗.
展开
-
将十六进制转换为对应的字符串,将字符串转换为对应的十六进制字符串,
/*************************************功能:将输入的字符串转成对应的HEX 16进制格式作者:贺远日期:2019.05.15参数:hexdata 要转换的HEX数字 n 字符串长度, buff 输出缓存区返回值:无例:0x814439 转换为 :"814439"(HEX格式)*******************...原创 2019-09-28 19:51:52 · 2415 阅读 · 0 评论 -
求数组中出现次数大于一半的数字
思路: 是要找的元素,计数器加一,不是则减一,当计数器为0,说明相同的元素个数已经被不同元素个数抵消完,则换下一个元素,最后剩下的就是最多的那个数字 相当于不断从数组里删除不同的两个数(不管包不包含要找的过半数),到最后剩下的将全是相同的数字了,即要找的数字#include<stdio.h>int main(void){ int arr[]={1,1,1,1,...原创 2018-05-02 21:26:33 · 426 阅读 · 0 评论 -
在排序数组中找出给定数字出现的次数
这个思路不是很难,由于平时练习甚少,还是在细节浪费了一些时间,以后注意细节 :先用二分法找到给定数字,然后找它左面出现几次,右面出现几次,然后相加#include<stdio.h>int main(void){ int n,a[]={1,2,2,3,4,4,4,4,4,5,6,7,7,7,7,8,9,10,11,11,11,12,13}; ...原创 2018-04-23 22:39:30 · 1015 阅读 · 0 评论 -
用一个for循环打印N维数组
/******************************************************用一个for循环打印N维数组一维就不说了二维: for(int i=0;i<x*y;i++) { printf("%d ",a[i/y][i%y]); }三维: for(int i=0;i<x*y*z;i++) ...原创 2018-04-23 21:42:21 · 1090 阅读 · 0 评论 -
C++实现词法分析器(学习)
参考网上程序,我把生成的数据存在文件里,能分析C语言的源程序#include<fstream> #include <iostream> #include <stdlib.h> #include <stdio.h> using namespace std; string KEYWORD[17]={"if","else","原创 2018-04-17 11:16:38 · 3392 阅读 · 0 评论 -
解决:invalid application of `sizeof' to incomplete type `char[] '错误
最近做一个DIY玩具,遇到的这个问题: 解决:invalid application of sizeof' to incomplete typechar[] ‘错误//a.c文件#include "a.h" char array[]={0XED,0X34,0X40,0X34};//a.h文件#ifndef _A_H#define _A_H#define size (...原创 2018-03-28 18:34:22 · 27390 阅读 · 3 评论 -
C语言基本概念笔记《七》之文件及操作文件的常用函数
一·文件概述1.文件的操作流程1.1建立/打开文件 1.2读文件/写文件 1.3关闭文件2.文件和内存的交互处理**2.1文件在外存中:(system I/O)//非缓冲文件系统,不提供缓冲区 2.2文件在内存中:(standard I/O)//缓冲文件系统,提供缓冲区二·文件类型指针1.文件类型的指针的结构体(VC6里面的):#ifndef _...原创 2018-03-26 23:19:03 · 291 阅读 · 0 评论 -
C语言基本概念笔记《二》之 语句
一·数据的输入输出:1.①格式化输入: scanf(“%d %d”,&a,&b); 输入:2 3 (注意,空格多个或一个都视为一个) scanf(“%d ,%d”,&a,&b); 输入:2 3 或2,3都可以 scanf(“%...原创 2018-03-21 21:06:01 · 208 阅读 · 0 评论 -
详解链表的创建,插入,删除,遍历
开始前废话几句,前几天做C语言笔记时,写到链表这块,懒得写链表的基本操作了,只浏览了一下概念,拖了好几天,今天打算把它完成,期间遇到了一个困惑,在这里再一次对马博老师表示感谢!//为了方便理解,链表的节点的结构体写简单点:typedef struct DATE{ int num; struct DATE *next;}date;//用date代替typedef str...原创 2018-03-31 20:54:09 · 433 阅读 · 0 评论 -
C语言基本概念笔记《六》之位运算及混合编程
一·位运算1.主要有以下六种: ①& 按位与 ②| 按位或 ③^ 按位异或 ④~ 按位取反 ⑤<< 按位左移 ⑥>> 按位右移二·C语言与会变语言混合编程1. 只要在汇编指令前面加上asm就可以了: ①asm AND a1,ofeh ②asm { AND a1,ofeh MOV a2,80h }原创 2018-03-25 17:09:15 · 202 阅读 · 0 评论 -
C语言基本概念笔记《五》之指针与链表
一·链表的特点1.对存储空间用则申请,不用则释放 2.插入删除只需少量操作 3.大大提高空间,时间的利用率二·链表的结构1.申请空间: 用malloc函数,它包含在stdlib.h文件里。 2.分析结构: 链表简单点说就是把一个一个的节点串起来,申请一个节点空间就串一个节点空间。但是他们的物理地址可能连续可能不连续,但是他们都存储在堆区。 3.节点的数据结构: 上面提到的节点的结构体类原创 2018-03-25 15:34:49 · 234 阅读 · 0 评论 -
错误:重复定义变量的解决办法——不要在头文件里定义变量
在写C代码的时候,经常需要在头文件中包含有些预定义的信息。比如一些结构体的声明,外部变量,函数的声明等。有时候觉得有必要在头文件中定义一些变量,这样在源文件中就不需要定义了。但是这样做,有很大的问题。比如[cpp] view plain copy //test.h 1 #ifndef _TEST_H 2 #define _TEST_H 3 int x; 4 c...转载 2018-05-28 16:21:57 · 3140 阅读 · 1 评论 -
裸机程序的前后台系统 (Foreground/Background System)
前后台系统 (Foreground/Background System) 这种系统可称为前后台系统或超循环系统(Super-Loops)。应用程序是一个无限的循环,循环中调用相应的函数完成相应的操作,这部分可以看成后台行为(background)。中断服务程序处理异步事件,这部分可以看成前台行为(foreground)。后台也可以叫做任务级。前台也叫中断级。时间相关性很强的关键操...转载 2018-06-07 08:49:40 · 4441 阅读 · 0 评论 -
C语言将32位数字转换为四个8位的数字,或者字节
转化为16位或其他的类似:#include<stdio.h> int main(){ unsigned long long x=0x11223344; int i,a[4];// char a[4];//转换为字节 for(i=0;i<4;i++) { a[i]=(x>>(i*8))& 0xFF; printf("%x\n"...原创 2018-06-15 20:46:28 · 67754 阅读 · 0 评论 -
JLINK 与STM32的SWD连接接线方式
有些开发板只能用Jlink烧写程序,但是没有提供标准Jlink接口,我们可以使用下面的办法,烧写:原创 2018-08-19 10:08:58 · 39968 阅读 · 0 评论 -
volatile的概念,用法讲解
转自:https://www.cnblogs.com/reality-soul/p/6140192.html.volatile的本质:1> 编译器的优化在本次线程内, 当读取一个变量时,为提高存取速度,编译器优化时有时会先把变量读取到一个寄存器中;以后,再取变量值时,就直接从寄存器中取值;当变量值在本线程里改变时,会同时把变量的新值copy到该寄存器中,以便保持一致。当变量在...转载 2018-08-18 16:54:33 · 645 阅读 · 0 评论 -
32位,64位编译器下c语言数据类型对应字节数
转自:https://blog.csdn.net/wocjj/article/details/7446703一、程序运行平台 不同的平台上对不同数据类型分配的字节数是不同的。 个人对平台的理解是CPU+OS+Compiler,是因为: 1、64位机器也可以装32位系统(x64装XP); 2、32位机器上可以有16/32位的编译器(...转载 2018-08-18 16:11:05 · 3471 阅读 · 0 评论 -
全局变量与静态全局变量的区别
一·全局变量作用域是整个工程,在一个文件内定义的全局变量,在另一个文件中,通过extern 全局变量名的声明,就可以使用全局变量。 二·静态全局变量是显式用static修饰的全局变量,作用域是声明此变量所在的文件,其他的文件即使用extern声明也不能使用。这是extern声明全局变量的用法...原创 2018-08-08 22:05:32 · 2778 阅读 · 0 评论 -
extern声明全局变量的用法
这篇文章主要讲解一下extern声明全局变量的一些用法,虽然知识点比较浅显,但是却容易犯错,仅与那些初学C++的朋友分享,希望没有让大牛们见笑。extern最基本的用法是声明全局变量的。这里需要注意两点,一是“声明”,二是“全局变量”;我们先来分析这两个概念。声明:声明和定义是有区别的。声明不等于定义,声明只是指出了变量的名字,并没有为其分配存储空间;定义指出变量名字同时为变量分配存储空间,定...转载 2018-08-08 21:53:54 · 32603 阅读 · 7 评论 -
char[0]在结构体中的应用
struct MyData { int nLen; char data[0];}; 在结构中,data是一个数组名;但该数组没有元素;该数组的真实地址紧随结构体MyData之后,而这个地址就是结构体后面数据的地址(如果给这个结构体分配的内容大于这个结构体实际大小,后面多余的部分就是这个data的内容);这种声明方法可以巧妙的实现C语言...转载 2018-08-18 10:14:50 · 860 阅读 · 0 评论 -
C语言中const用法解析
const修饰的变量存储位置,和不用const修饰的没区别!!!!!!转自:http://blog.csdn.net/xingjiarong/article/details/47282255关键字const用来定义常量,如果一个变量被const修饰,那么它的值就不能再被改变,我想一定有人有这样的疑问,C语言中不是有#define吗,干嘛还要用const呢,我想事物的存在一定有它...转载 2018-08-12 16:45:16 · 13736 阅读 · 0 评论 -
C语言如何将数据转化为字符串格式
函数功能:把格式化的数据写入某个字符串函数原型:int sprintf( char *buffer, const char *format [, argument] … );返回值:字符串长度(strlen)例子:char* who = "I";char* whom = "CSDN";sprintf(s, "%s love %s.", who, whom); //产生:"I...转载 2018-07-28 14:15:03 · 5133 阅读 · 0 评论 -
C语言常见经典面试题 以及 C语言面试宝典
1 预处理问题1:什么是预编译?何时需要预编译?答:预编译又称预处理,是整个编译过程最先做的工作,即程序执行前的一些预处理工作。主要处理#开头的指令。如拷贝#include包含的文件代码、替换#define定义的宏、条件编译#if等。.何时需要预编译:1、总是使用不经常改动的大型代码体。2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,...转载 2018-07-28 14:06:30 · 15396 阅读 · 0 评论 -
什么是回调函数
1 定义和使用场合回调函数是指 使用者自己定义一个函数,实现这个函数的程序内容,然后把这个函数(入口地址)作为参数传入别人(或系统)的函数中,由别人(或系统)的函数在运行时来调用的函数。函数是你实现的,但由别人(或系统)的函数在运行时通过参数传递的方式调用,这就是所谓的回调函数。简单来说,就是由别人的函数运行期间来回调你实现的函数。这一设计允许了底层代码调用在高层定义的子程序(如图1-1所...转载 2018-08-03 17:33:36 · 66753 阅读 · 2 评论 -
C语言基本概念笔记《三》之指针,数组,动态数组的创建
一·指针1. 地址运算符& :只能取内存中变量的地址。 取值运算符*:一般和指针合用。作用是获取指针所指向的变量的值。 指针也是一个变量:指针变量(对应的,整型变量等),它里面存的是变量的地址 int a; int *p;//定义 p= & a;//把a的地址存到p里。即p指向变量a. 由 *p=5;可使a=5;2.&* 与*&的区别: ...原创 2018-03-23 08:32:44 · 905 阅读 · 0 评论 -
C语言基本概念笔记《四》之指针与函数,结构体,共用体,枚举
一·函数1.函数的返回值类型和return中表达式类型不一致时,以函数的类型为准。 2.函数的参数: ①形参在编译时不分配存储空间,无初值,只有在函数调用时为其临时分配空间,接受实参值,函数调用结束,内存就被释放, ②数组元素作为参数和普通变量一样 ③数组名作为参数,传递的实际上是数组首地址。被调函数可以使用数组的元素值,而且可以改变实参数组元素的值 int fff(int a[...原创 2018-03-25 09:20:11 · 729 阅读 · 1 评论 -
C语言基本概念笔记《一》之标识符与变量的输入输出
有些不常用的概念都模糊了,等到面试时候,面试官提问,自己连最基础的概念都不清楚,所以我觉得对基本概念清楚是扎实基础的第一步。 下面是一些概念(字符集,运算符啥的我就不写了):一·字符,变量,标识符等1. 标识符:由关键字(32个关键字,int if ),预定义标识符 (库函数,预编译命令),用户标识符(自己定义的变量,函数名) 注意:标识符必须由英文字母或者...原创 2018-03-21 20:20:36 · 679 阅读 · 0 评论 -
蓝桥杯,历届试题 核桃的数量
历届试题 核桃的数量 时间限制:1.0s 内存限制:256.0MB问题描述小张是软件项目经理,他带领3个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。他的要求是:1. 各组的核桃数量必须相同2. 各组内必须能平分核桃(当然是不能打碎的)3. 尽量提供满足1,2条件的最小数量(节约闹革命嘛原创 2017-03-26 16:42:56 · 713 阅读 · 0 评论 -
N的阶乘的叠加
#includevoid main(){ int i,j,n,p,q=0; // p=1;(p不能放在这里) scanf("%d",&n); for(i=1;i<=n;i++) //求和 { p=1; // p=1目的是使阶乘每次都是从一开始 for(j=1;j<=i;j++)//求阶乘, {原创 2017-04-09 23:21:16 · 532 阅读 · 0 评论 -
常量,以及变量的作用域《一》
由于对这些细节概念掌握的不扎实,在编程中经常会出现一些问题,而且还很难找到BUG,现在自己整理了一下,顺便重新学习一下: 数据是计算机程序加工处理的对象,数据又分好多种类型。在程序运行过程中,值不能改变的量称为常量,相对应得值能改变的量称为变量。 《一》常量 分类 (1) 符号常量 格式:#define (2) 整原创 2017-03-28 23:14:48 · 663 阅读 · 0 评论 -
煤球数目 ,2016年蓝桥杯试题,第二题
2.煤球数目 有一堆煤球,堆成三角棱锥形。具体: 第一层放1个, 第二层3个(排列成三角形), 第三层6个(排列成三角形), 第四层10个(排列成三角形), .... 如果一共有100层,共有多少个煤球? 请填表示煤球总数目的数字。 注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。第一层1个 1;第二层3个原创 2017-03-14 22:36:13 · 3198 阅读 · 0 评论 -
哈夫曼编码
哈夫曼编码(还有对应的实验报告,在我的上传资源里,可以免费下载))1.设计内容1.添加用户登录密码2.建立哈夫曼树:读入文件(*.souce),统计文件中字符出现的频度,并以这些字符的频度作为权值,建立哈夫曼树。3.编码:利用已建立好的哈夫曼树,获得各个字符的哈夫曼编码,并对正文进行编码,然后输出编码结果,并存入文件(*.code)中。4.译码:利用已建立好的哈原创 2017-04-06 23:15:49 · 5369 阅读 · 4 评论 -
汽车信息管理系统(课程设计))
代码经过上机测试:另(有实验报告在我上传的文件里下载)#include#include#include #include #include#includemi_ma();mi_ma2();mi_ma1();void cai_dan();void cai_dan1();save_in_f(struct car *l);ku_cun();xiu_gai()原创 2017-04-06 22:56:00 · 3490 阅读 · 0 评论 -
欧几里得算法,求两个数最大公约数,最小公倍数
#include<stdio.h>main(){ int m,n,t,s; printf("请输入俩个正整数:\n"); scanf("%d%d",&m,&n); s=m*n;//s为m和n的乘积 //欧几里得算法 if(m<n) { t=m;m=n;n=t; } do { t=m%n; m=n; n=t; }whil...原创 2017-04-06 22:39:04 · 1132 阅读 · 0 评论 -
兰顿蚂蚁
历届试题 兰顿蚂蚁 时间限制:1.0s 内存限制:256.0MB 问题描述 兰顿蚂蚁,是于1986年,由克里斯·兰顿提出来的,属于细胞自动机的一种。 平面上的正方形格子被填上黑色或白色。在其中一格正方形内有一只“蚂蚁”。 蚂蚁的头部朝向为:上下左右其中一方。 蚂蚁的移动规则十分简单: 若蚂蚁在黑格,右转原创 2017-03-20 21:54:03 · 394 阅读 · 0 评论 -
简单的舞伴问题实现
西 安 邮电 大 学 (计算机学院) 数据结构课内实验报告 实验名称: 舞伴问题 专业名称: 计算机科学与技术班 级: 计科1505 学生姓名: 贺远学号(8位): 04151154指导教原创 2016-11-13 22:37:40 · 11140 阅读 · 2 评论 -
一维数组,二维数组初始化
1static int a[10]={0,1,2,3,4,5,6,7,8,9};经过上面的定义和初始化后,a[0]=0,a[1]=1,…,a[9]=9。(2)初始化时可以只对一部分元素赋初值。例如:1static int a[10]=原创 2017-03-26 20:51:02 · 1711 阅读 · 0 评论 -
const char*p, char const*p, char*const p,的区别问题
const char*p, char const*p, char*const p,的区别问题注意:看*和const谁离右边的定义指针名最近①*离得近的话表示该指针指向一个常量字符串,不能通过该指针改变字符串的内容(指针指向的值不能改变);②const离得近的话表示这是一个常量指针,指针指向的位置一开始就确定,不能改变。其中:const char *p = char const原创 2017-06-01 20:17:53 · 564 阅读 · 0 评论 -
高效率求1~10000之间的素数(初级)
①偶数除了二都不是素数,②一个数 n 如果是合数,那么它的所有的因子不超过sqrt(n)--n的开方#include#includemain(){ int i,j,n=10000; printf("2 "); for(i=3;i<=n;i+=2) { for(j=2;j<(sqrt(i)+1);j++) { if(i%j==0) break; } i原创 2017-06-02 23:19:20 · 2709 阅读 · 0 评论 -
struct(结构体)的长度以及字节对齐方式
struct是一种复合数据类型,一般而言struct的sizeof是所有成员对齐后长度相加的长度,下面分析一下:1.//我的电脑是64位#include<stdio.h>struct sum{ short d;};int main(void){ sum s; int summ; summ=sizeof s; prin...原创 2018-03-12 18:08:50 · 3819 阅读 · 0 评论