C语言程序设计/面试题
记录阅读C语言遇到的关键知识点,C语言面试的一些问题
机器人107
搞个博客写写笔记
展开
-
重温C语言 | 结构体应用(C语言类的实现)
函数指针一般的函数指针可以这么定义:表示一个指向含有两个int参数并且返回值是int形式的任何一个函数指针. 假如存在这样的一个函数:int add2(int x,int y){ return x+y;}那么在实际使用指针func时可以这样实现:func=&add2; //指针赋值,或者func=add2; add2与&add2意义相同printf("fu...转载 2019-07-29 00:40:13 · 1183 阅读 · 0 评论 -
重温C语言 | 指针基础(指针与内存)
C语言在编译之后会以三种形式使用内存静态/全局内存静态/全局内存静态声明的变量分配在这里,全局变量也使用这部分内存。这些变量在程序开始运行时分配,直到程序终止才消失。所有函数都能访问全局变量,静态变量的作用域则局限在定义它们的函数内部。自动内存这些变量在函数内部声明,并且在函数被调用时才创建。它们的作用域局限于函数内部,而且生命周期限制在函数的执行时间内。动态内存内存分配在堆上,可以根...转载 2019-07-28 23:30:35 · 594 阅读 · 0 评论 -
重温C语言 | 结构体
结构体:由一系列具有相同或者不同的数据类型的数据组成的集合,数据彼此之间有联系数组:由一系列具有相同数据类型的数据组成的集合,数据之间彼此独立,数据意义相同---->数据类型相同数组的特点:数据多数据的意义一样,---->数据类型一样数据彼此独立,互不影响可以拆分为基本数据类型结构体的特点:数据多数据意义不一样—>数据类型不一样,也有可能一样数据彼此有...原创 2019-07-14 23:44:59 · 686 阅读 · 0 评论 -
重温C语言 | 字符/字符串操作函数
字符/字符串输入输出函数输入输出一个字符格式化输入输出函数 scanf() printf函数 %cgetchar() putchar() 函数输入输出一个字符串格式化输入输出函数 scanf() printf函数 %sscanf函数输入一个字符串的时候,只能输入一个单词,一旦输入空格,或者tab键则停止获取,会在键入回车键之前系统会自动加’\0’printf函数输出一...原创 2019-07-13 00:22:09 · 298 阅读 · 0 评论 -
static关键字的用法及详细例子解析
概述static关键字在c语言中比较常用,使用恰当能够大大提高程序的模块化特性,有利于扩展和维护。但是对于c语言初学者,static由于使用灵活,并不容易掌握。本文就static在c语言中的应用进行总结,供参考使用。错漏之处,请不吝指正。在程序中使用static变量局部变量普通局部变量是再熟悉不过的变量了,在任何一个函数内部定义的变量(不加static修饰符)都属于这个范畴。编译器一般...转载 2019-06-24 01:20:18 · 1675 阅读 · 0 评论 -
emwin的WM_ShowWindow失效带来的思考,全局数组的使用。
这个问题困扰了快两天,到最后发现是隐藏比较深的错误,是因为数组定义的问题导致句柄保存出错。而emwin很多时候都是靠句柄操作界面的,一旦句柄出错了,问题很严重。全局数组的使用:1.可以通过在.c文件中定义,在头文件中extern的方式实现一个能够在所有文件中都可以使用的全局数组变量。2.在一个.c文件中定义,在其他.c文件中extern声明。...原创 2019-05-23 08:26:19 · 1069 阅读 · 0 评论 -
重温C语言 | 字符数组和字符串
符数组的定义char 数组名[长度]char 表示数组元素的类型为字符类型,存储字符数组名表示数组首元素的地址字符数组的主要用途---->存储字符串,字符数组的初始化1)字符数组可以进行部分初始化,系统默认未被初始化的元素赋值为0-------’\0’空字符2)初始化时,长度可以省略不写,分配的空间的大小由初始化列表中的元素来决定3)字符数如果只定义不赋值,则系统默认为随机值...原创 2019-07-12 00:34:18 · 385 阅读 · 0 评论 -
重温C语言 | 二维数组
二维数组:矩阵的表示形式多个一维数组组成二维数组二维数组的定义:定义格式:数据类型 数组名[长度1] [长度2]数据类型:表示数组中元素的类型长度1 : 表示二维数组的行数长度2 : 表示二维数组的列数说明:表示由长度1个一维数组构成二维数组每个一维数组元素的个数是长度2...原创 2019-07-10 00:29:09 · 288 阅读 · 0 评论 -
重温C语言 | 一维数组
数组的概念数组:由一系列具有相同数据类型组成的集合 1)数据多(数据个数>=2) 2)数据意义一样,----->数据的类型一致 3)数据彼此独立,互不影响 元素:数组中的数据,用下标表示元素 下标:数据在数组中的排列顺序,从0开始排序一维数组的定义 初始化数组的定义数组的定义格式数据类型 数组名[长度]; 说明:数据由数组元素的数据类型决定 数组名...原创 2019-07-08 00:16:50 · 692 阅读 · 0 评论 -
CPrimerPlus | C语言执行过程
C编程的基本策略是 用程序把源代码文件转换为可执行文件(其中包含可直接运行的机器语言代码) 典型的C实现通过编译和链接两个步骤来完成这一过程。 编译器把源代码转换成中间代码, 链接器把中间代码和其他代码合并, 生成可执行文件。 C 使用这种分而治之的方法方便对程序进行模块化, 可以独立编译单独的模块, 稍后再用链接器合并已编译的模块。 通过这种方式, 如果只更改某个模块, 不必因此重新编...转载 2019-07-07 17:24:51 · 486 阅读 · 0 评论 -
C语言特殊的宏定义(C语言打印时间日期,文件名,所在行)
LINE 表示正在编译的文件的行号FILE 表示正在编译的文件的名字DATE_ 表示编译时刻的日期字符串,例如: “25 Dec 2007”TIME 表示编译时刻的时间字符串,例如: “12:30:55”举例:#include <stdio.h>int main(void){ printf("%s\r\n",__FILE__); prin...原创 2019-07-06 00:48:48 · 4943 阅读 · 0 评论 -
C语言面试常见题型:char类型溢出
char a = 300;printf(“%d\n”,a);结果是44思路:默认char类型是有符号类型,数值范围是-128 – 127转化为带符号二进制的话[+300]原=0 1 0010 11009//正数原码符号为0,负数为1[+300]补=0 1 0010 11009溢出后丢掉高两位,补码变为0010 1100 (44)char b=400;printf(“%d\n”...原创 2019-07-01 22:19:31 · 2471 阅读 · 8 评论 -
单片机工程师面试题小计
单片机开发常见面试题1.IIC协议时序图?2.冒泡排序下面是最基础的3.宏定义MIN,得出两个数字的最小值#define MIN(A,B) ((A) <= (B) ? (A) : (B))这个测试是为下面的目的而设的:标识#define在宏中应用的基本知识。这是很重要的。因为在 嵌入(inline)操作符 变为标准C的一部分之前,宏是方便产生嵌入代码的唯一方法,对于嵌入...原创 2019-06-19 00:30:44 · 9753 阅读 · 2 评论 -
C语言关键字volatile、const volatile int i=10分析、volatile面试题
volatile的意义volatile 是易变的、不稳定的意思。很多人根本就没见过这个关键字,不知道它的存在。也有很多程序员知道它的存在,但从来没用过它。我对它有种“杨家有女初长成,养在深闺人未识” 的感觉。volatile 关键字和 const 一样是一种类型修饰符, 用它修饰的变量表示可以被某些编译器未知的因素更改,比如操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器...转载 2019-02-17 17:33:55 · 742 阅读 · 0 评论 -
extern关键字(声明和定义的区别)
extern关键字extern是计算机语言中的一个关键字,可置于变量或者函数前,以表示变量或者函数的定义在别的文件中。提示编译器遇到此变量或函数时,在其它模块中寻找其定义,另外,extern也可用来进行链接指定。extern用在变量声明中常常有这样一个作用:你要在*.c文件中引用另一个文件中的一个全局的变量,那就应该放在*.h中用extern来声明这个全局变量。谨记:声明可以多次,定义只能一...转载 2019-02-17 15:34:47 · 3650 阅读 · 0 评论 -
const关键字
const:刷面试题遇到:关键字const有什么含义?除了想起const修饰只读,就没有其他印象了。其实说const修饰只读也不完全正确。你们const有什么含义呢?解答:《C语言深度解剖》一书介绍:const 是 constant 的缩写,是恒定不变的意思,也翻译为常量、常数等。很不幸,正是因为这一点,很多人都认为被 const 修饰的值是常量。这是不精确的,精确的说应该是只读的变量,其...转载 2019-02-17 11:18:34 · 468 阅读 · 0 评论