- 博客(28)
- 资源 (30)
- 收藏
- 关注
原创 详解链表的创建,插入,删除,遍历
开始前废话几句,前几天做C语言笔记时,写到链表这块,懒得写链表的基本操作了,只浏览了一下概念,拖了好几天,今天打算把它完成,期间遇到了一个困惑,在这里再一次对马博老师表示感谢!//为了方便理解,链表的节点的结构体写简单点:typedef struct DATE{ int num; struct DATE *next;}date;//用date代替typedef str...
2018-03-31 20:54:09 419
原创 解决: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 27166 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 273
原创 C语言基本概念笔记《六》之位运算及混合编程
一·位运算1.主要有以下六种: ①& 按位与 ②| 按位或 ③^ 按位异或 ④~ 按位取反 ⑤<< 按位左移 ⑥>> 按位右移二·C语言与会变语言混合编程1. 只要在汇编指令前面加上asm就可以了: ①asm AND a1,ofeh ②asm { AND a1,ofeh MOV a2,80h }
2018-03-25 17:09:15 186
原创 C语言基本概念笔记《五》之指针与链表
一·链表的特点1.对存储空间用则申请,不用则释放 2.插入删除只需少量操作 3.大大提高空间,时间的利用率二·链表的结构1.申请空间: 用malloc函数,它包含在stdlib.h文件里。 2.分析结构: 链表简单点说就是把一个一个的节点串起来,申请一个节点空间就串一个节点空间。但是他们的物理地址可能连续可能不连续,但是他们都存储在堆区。 3.节点的数据结构: 上面提到的节点的结构体类
2018-03-25 15:34:49 225
原创 C语言基本概念笔记《四》之指针与函数,结构体,共用体,枚举
一·函数1.函数的返回值类型和return中表达式类型不一致时,以函数的类型为准。 2.函数的参数: ①形参在编译时不分配存储空间,无初值,只有在函数调用时为其临时分配空间,接受实参值,函数调用结束,内存就被释放, ②数组元素作为参数和普通变量一样 ③数组名作为参数,传递的实际上是数组首地址。被调函数可以使用数组的元素值,而且可以改变实参数组元素的值 int fff(int a[...
2018-03-25 09:20:11 712 1
原创 C语言基本概念笔记《三》之指针,数组,动态数组的创建
一·指针1. 地址运算符& :只能取内存中变量的地址。 取值运算符*:一般和指针合用。作用是获取指针所指向的变量的值。 指针也是一个变量:指针变量(对应的,整型变量等),它里面存的是变量的地址 int a; int *p;//定义 p= & a;//把a的地址存到p里。即p指向变量a. 由 *p=5;可使a=5;2.&* 与*&的区别: ...
2018-03-23 08:32:44 890
原创 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 193
原创 C语言基本概念笔记《一》之标识符与变量的输入输出
有些不常用的概念都模糊了,等到面试时候,面试官提问,自己连最基础的概念都不清楚,所以我觉得对基本概念清楚是扎实基础的第一步。 下面是一些概念(字符集,运算符啥的我就不写了):一·字符,变量,标识符等1. 标识符:由关键字(32个关键字,int if ),预定义标识符 (库函数,预编译命令),用户标识符(自己定义的变量,函数名) 注意:标识符必须由英文字母或者...
2018-03-21 20:20:36 655
原创 字符串逆序输出,((,{,[这几个不变)
小号一个字符串,逆序输出,其中(),[],{},不变:#include<stdio.h>#include<stdlib.h>#include<string.h>char* array(char * src){ char a; int n=strlen(src); int m=n-1; for(int i=n...
2018-03-18 17:11:08 293
转载 宏求结构体的偏移地址
[cpp] view plain copydefine OffSet(type,field) ((size_t)&(((type*)0)->field))在C语言中,ANSI C标准允许值为0的常量被强制转换成任何一种类型的指针,而且转换结果是一个空指针,即NULL指针,因此对0取指针的操作((type*)0)的结果就是一个类型为type*的NULL指针。 但是如果利用这...
2018-03-15 20:25:00 271
原创 关于C预处理的笔记
一·指令功能#define 定义宏 #undef 取消已定义的宏 #if 如果给定条件为真,编译下面的代码 #ifdef 如果宏已定义,则编译下面代码 #endif 结束一个 #if““#else 条件编译块 #ifndef 如果宏未定义,则编译下面代码 #error 停止编译并显示错误信息 #elif 前面的 #if 的条件为假,则执行下面的代码...
2018-03-14 22:38:25 184
原创 宏定义,定义一个宏比较两个数的大小
#include<stdio.h> #include<math.h> #define charck(a,b) (((a)-(b))==fabs((a)-(b)))?printf("a>b"):printf("a<b")int main(void){ int a,b; scanf("%d %d",&a,&b
2018-03-14 22:35:48 11301 1
原创 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 3772
原创 sizeof与strlen的区别
这俩个我经常会混淆,今天在此总结一下,以后忘记了可以直接复习: 1.首先他两个类型不同,sizeof是关键字,而strlen是函数。 2.sizeof的参数可以是类型,或者函数,而strlen只能用char * 做参数 例如:int g(); sizeof(g()); //sizeof(g())的值等于 sizeof(int) 注意:sizeof后面如果是类型必须加括号,是变量的话可以...
2018-03-12 17:42:48 205
原创 变量与’零值‘的比较
一·一般与零值比较的变量有布尔型(BOOL),指针型(*),int型,float型。下面我们分别来看一下:1.布尔型(BOOL) :一般用来判断一个变量是真还是假,例如:if(var),if(!var)2.指针型(* ) :一般用来判断是否为空,例如 :if(var==NULL),if(var!=NULL)3.int型 : 一般用来判断变...
2018-03-12 17:14:04 328
原创 a++为什么不能作为左值
表达式i++的值是一个临时变量,所以不能给临时变量赋值(因为它们马上就消失了)表达式++i的值是i,不是临时变量下面引用在博客上看到的一个易于理解的回答: 首先说左值和右值的定义: 变量和文字常量都有存储区,并且有相关的类型。区别在于变量是可寻址的(addressable)对于每一个变量都有两个值与其相联: 1).它的数据值,存储在某个内存地址中。有时这个值也被称为对象的右值(r...
2018-03-11 12:12:16 1772
原创 *p++与(*p)++的区别
前缀递增递减和*优先级相同,从右到左;后缀递增递减比前缀优先级高,从左到右。 先看下面这段测试程序;#include<stdio.h>int main(void){ int arr[5]={1,5,10,15,20}; int *p=arr; int a,b,c; a=*p++; printf("%d %d\n",a,*p);...
2018-03-10 22:40:44 18861 1
转载 CVTE 嵌入式软件工程师 面试+笔试
一面:在网上做完了测评之后,当天就收到面试的通知了,CVTE效率真高。第二天就去参加面试,面试前紧张了一把,后来去到之后发现只有几个应聘者,很多面试官前面都没人,估计现在中午一点,所以都去吃饭了。我和一个同学去,直接就面试了。我面的是技术类的岗位。 一面没有问技术,只是问问简历上写的东西。HR有2个人,同时面试我们3个人。以下是HR问的问题:你为什么要应聘这个职位? 你的成绩排...
2018-03-08 22:16:14 6319 1
转载 2016年校园招聘总结
2017年的校园招聘算是告一段落了,怎么说呢,比较满意吧。总共用了两周时间,面试了4家(兆易创新,联发科,瑞晟微电子,地平线机器人),给了两个offer(联发科跟瑞晟微电子),是个疯狂的一周,周一面联发科,面试时直接给的口头offer,周二面瑞晟,周三上午收到瑞晟的offer,下午面地平线机器人,周四上午去联发科收到正式offer。总想写点什么,一是传说中的为师弟师妹们写点面经什么的(其实我也没有...
2018-03-08 22:13:11 1846
转载 2017CVTE嵌入式软件研发岗面经
本人普通高校大三学生,准备在暑假找一份嵌入式实习工作,因为实验室一学长去年通过实习生通道成功拿到正式岗offer(而且CVTE在嵌入式这一行的工资福利等都是相当诱人),所以我的目标就是首先要拿到cvte的实习生offer!我应聘的是cvte的嵌入式软件开发实习岗,废话不说,先上面经:一、在线网测我和另外两个同学在03.24晚上做的嵌入式研发岗题目,今年的题目还可以跟嵌入式有点相关(根据...
2018-03-08 22:05:01 1906
转载 嵌入式面试题
预处理器(Preprocessor)用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想看到几件事情: 1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2). 懂得预处理器将为你计算常数表达式的值,因此,直接...
2018-03-08 21:35:46 255
转载 华为 嵌入式软件工程师面试题
(1)什么是预编译,何时需要预编译:答案:1、总是使用不经常改动的大型代码体。2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。预编译指令指示了在程序正式编译前就由编译器进行的操作,可以放在程序中的任何位置。(2)char * constp char const * p const ...
2018-03-08 21:34:08 6006
转载 cvte面试过程
2017/3/25一面: 面试形式:一个技术官对一个面试者,对坐(个人猜测,应该是项目负责人,不是底层的一线开发人员) 请来一个简短的自我介绍–(上面的自我介绍,但因为一开始稍微有点紧张,没有很流利)–嗯,之前在创业公司里面担任什么工作–嵌入式软件工程师–嗯,那具体做过什么项目呢–两个,“读卡器”和“吊扇”,读卡器是两块stm8芯片,一块主控一块存储秘钥,外接一个fm17520芯片读取非接...
2018-03-08 21:22:37 29906
转载 面试准备
在求职中,我主要投报了软件研发和嵌入式软件研发两个职位,与各位分享一下我的面试准备。面试需要准备一下几个方面:首先,是自我介绍准备一段1分钟之内的自我介绍,包含基本的个人消息,项目信息,获奖信息等。不要太长,简历上有的尽量简练。第二,做过的项目将自己做过的项目整理,准备两个方面:(1) 项目的内容(2) 涉及的关键技术面试时,表达力求清晰。第三,技术基础(1...
2018-03-08 21:12:08 203
转载 面试总结
1, 简介毕业答辩搞定,总算可以闲一段时间,把这段求职经历写出来,也作为之前三个半月的求职的回顾。 首先说说我拿到的offer情况:1) 微软,3面->终面,搞定(+1)2) 百度,3面->终面,口头offer(+1)3) 搜狗,2面,悲剧4) 腾讯,1面,悲剧5) 布丁移动,3面,搞定(+1)6) 涂鸦游戏,3面,搞定(+1)7) 友盟,3面-&g...
2018-03-08 21:11:02 758
原创 const总结
1.const类型也称为常类型,,定义const常量,具有不可变性。 const int i=100; 可以和宏定义一样,不变则以,一变都变。但是和#define不一样的是从汇编角度来看,const只给出对应内存的地址,而#define给出的是立即数。所以const定义的常量在程序运行过程中只有一份复制品,而宏定义的常量有若干个。 举例:#define q=6const int...
2018-03-08 18:16:55 198
原创 C语言变量的存储类型
代码区:存放CPU执行的机器指令,代码区是可共享,并且是只读的。 数据区:存放已初始化的全局变量、静态变量(全局和局部)、常量数据。 BBS区:存放的是未初始化的全局变量和静态变量。 栈区:由编译器自动分配释放,存放函数的参数值、返回值和局部变量,在程序运行过程中实时分配和释放,栈区由操作系统自动管理,无须程序员手动管理。 堆区:堆是由malloc()函数分配的内存块,使用free()函数...
2018-03-07 22:16:05 4042
学习嵌入式的几点建议
2018-07-26
ME3616-NB-LOT资料
2018-07-26
基于 STM32的RTX教程
2018-06-06
MG995舵机基于STM32的驱动源代码
2018-01-29
STM32库开发实战指南
2017-09-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人