C 语言中的字符串虽然不是一种独立的数据类型,但是这并不影响其重要地位,所以在 C 语言中会有一些专门针对字符串的函数。 1. 字符串函数 字符串函数是专门用来进行字符串操作的。C 语言提供了一个标准的函数库 string.h 。在这个函数库中大致存在了 22 个字符串的函数。我们这里所介绍的字符串函数是来自于这个标准函数库中比较常用的的一部分函数。除了这个函数库,还会有第三方的函数库提供的字符串
作为 C 语言程序的入口 mian 函数很多时候会在启动的时候从外界传入一些参数到程序内部。 1. main 函数的参数 其实从函数角度的讲, mian 函数和其它函数没有什么特别之处。只不过这个函数是又操作系统直接引导的,在大多数的情况下是程序的入口。因此而显得特殊。 之前我们介绍的程序中都是没有参数的 mian 函数,这里我们看一下一般情况下 mian 函数的参数情况。 int main(in
三目运算符是一种比较特殊的运算符,在我们前面的总体运算符介绍中,它被归在了单独的一类,也就是其它类别。这个运算符其实更像是一个简化版的 if 语句,但是却很简洁强大。 1. 语法 语句 1 ? 语句 2: 语句 3 当语句 1 中条件成立的时候返回语句 2 的值,如果语句 1 中条件不成立,那么就返回语句 3 的值。 2. 应用场景 在你需要进行一个条件判断,有真假存在,且输出语句真假各为一行的
在之前的 C 语言标准中,逻辑运算符是表示两个数值之间逻辑关系的运算符。通常用 0 和 1 来表示假值和真值。但是在 C 语言中会认为非 0 的数值在逻辑运算中都为 1 。逻辑运算的返回值也是整数型,不是 0 就是 1 ,这点和其他很多编程语言是不同的。 但是,在 C99 标准中引入了布尔类型。所以 C 语言中的逻辑运算就简单了很多。要想使用布尔类型,需要引入 stdbool.h 这个库即可。但是
上一个小节我们对 C 语言的运算符有了一个基本的了解,这节课我们来详细的看下运算符中的算术运算符: 1. 算数运算符 算数运算符是用来进行算数运算的符号,主要包含以下几个符号: 运算符 作用 示例 = 赋值 a=1 + 加法或者正号 a+b, +a - 减法或者负号 a-b, -a * 乘法 a*b / 除法 a/b % 取余数 a%b ++ 自加 ++a, a++ – 自减 –a, a– 2.
作为 C 语言中主力的标准输出函数, printf 为我们提供了丰富的格式选项。 1. 格式参数 首先列举一下 printf 全部的参数: % [标志位] [显示占位宽度] [精度] [数字长度] 说明符 这里面用括号包裹的内容为可选参数,我们分项来介绍上面的各项参数,首先从最常用的说明符开始介绍: 说明符 参数含义 输出示例 o 无符号八进制数 410 x 无符号十六进制数 7ff X 无符号
过去,我一直无法相信:一个新人在三个月里可以学好前端。后来,我信了。因为三个月后,我又是一个前端的新人,我又需要重新入门前端。 前端领域好似也有一个“摩尔定律”。戈登·摩尔提出来:积体电路上可容纳的电晶体(晶体管)数目,约每隔24个月便会增加一倍,后来经常被引用的“18个月”。而对于前端领域来说,每隔 3-6 个月,知识点将增加一倍。 过去一年(即 2016 年)的每三个月(或者半年)里,前端领域
警告:为避免支持库在使用过程中发生错误及不稳定情况,请不要反编译,修改及破解支持库文件。 l 易语言及eyuyan是易语言公司在中国的注册商标。 l 本说明书中提到的公司名和产品名是相应公司的商标或注册商标。 一.系统要求 lIBMPC AT或兼容机 lWindows95或更高版本 l支持库要求的最低易语言版本 *注意:某些支持库必须有其他相应版本的软件支持才能达到预期效果。 二.支持库说明: 注
在说明com对象在易语言中的使用之前,让我们先来了解一下几个问题 什么是com? com全称是组件对象模型(compoment object model),他是一组规范,是MicroSoft创建的一组二进制和网络标准,用于解决两个组件之间的通信。 什么是com对象 com是面向对象的软件模型,com对象的概念有点类似于C++中对象的概念。在com规范中,没有com对象的严格定义,com组件提供给客
一:即时输入提示: 我们打开菜单“工具”→“系统配置”,选择“输入”子夹,通过下面2张图的对比,我们可以看到新版易语言将以前的“提供数据类型选择列表”这个选择项修改为“即时输入提示”(如图): 旧版本系统配置对话框 新版本系统配置对话框 通过这个选项,我们可以选择在输入代码的时候是否需要有提示框。 即时输入提示框会在以下几个地方出现: 1:输入代码的时候,(如图): 2:输入返回值类型的时候,(如
用C语言完全模拟C++虚函数表的实现与运作方式 如果对前面两大节的描述仔细了解了的话,想用C语言来模拟C++的虚函数以及多态,想必是轻而易举的事情了! 前提 但是,话得说在前面,C++的编译器在生成类及对象的时候,帮助我们完成了很多事件,比如生成虚函数表! 但是,C语言编译器却没有,因此,很多事件我们必须手动来完成,包括但不限于: 手动构造父子关系 手动创建虚函数表 手动设置__vfptr并指向虚
内存分布之堆空间 栈空间是存放局部变量的存储器,主要在于栈可以出栈,入栈的操作,可以将我们的临时变量替换。只读空间可以认为是我们程序员在程序运行之前就已经设计好的数据空间。我们还需要一个运行时保留一段时间的空间-堆空间。 1.只读空间:静态空间,整个程序结束时释放内存,生存周期最长。 2.栈空间:运行时,函数内部使用的变量,函数一旦返回,就释放,生存周期在函数内。 3.堆空间:可以自由,自我管理分
内存分布之数据段 不管我们以后是自己写代码还是读别人的代码,都应该想想这个变量默认存储的位置。在我们以后的嵌入式开发中,技巧性的代码越来越多的时候,我们可能把某一些代码放在一段。我们可以通过修改变量或者代码默认放置的段,让它被放到其它的段中。我们也可以自己定义一个新的段。 随着运行,栈空间是随时会变化的。栈空间临时的去存储一些变量,当我们进入一个函数,系统就会在栈空间去分配一片内存去保存这个函数里
内存分布思想概述 通过我们前面对C的学习,我们知道了C就是不断地操作和分配内存类型资源的一种语言,它的核心思想就是如何操作内存。不管是指针还是数组,都是围绕着内存。随着对内存属性的深入,自然而然对于我们理解C的一些编程技巧和更高深的思想是很有帮助的。 内存的属性 大小 不管我们是什么数据类型,在编译器看到这个类型之后,就有一个内存大小为我们服务。只是对于指针而言,还多了一个指向类型的读取方法。 在
指针越界访问举例 我们都知道const修饰的是一个常量,是不可以被改变的量。但是在C语言中,它也许是一个中看不中用的修饰符。它是希望我们不去改变它的值,但是实际上C却不能阻止我们去修改它。和C++,Java不同,C++中的const就不能被改变。C中就并没有这种强化,当然也有它的道理。下面我们来看一个例子操作一下const常量: 测试代码如下 我们试图去修改一个常量的值。 运行结果如下 由于我们已