
C语言语法
文章平均质量分 69
chenkaixin_1024
这个作者很懒,什么都没留下…
展开
-
浅谈一个程序如何生成一个可执行文件
众所周知,我们不管用哪种编程语言去写出一个程序,对于计算机而言,它都是无法直接识别的,所以从写好一个程序到计算机将它运行出来这个过程中,势必会发生一系列的变化,将我们所写的高级语言(例如:C语言)的代码转化成计算机所能识别的机器语言(即0,1序列)。 而这个过程之中大致包括这几个部分:预处理----->编译-------->汇编------->链接。原创 2016-11-02 16:52:23 · 1737 阅读 · 0 评论 -
break与continue在循环语句中的区别
当我们使用循环语句的时候,会不会在某些特定场合想要让程序从循环体中跳出从而去执行我们想要的其他代码呢?而你们又会怎样去实现这个功能,在c语言中有两个简单的关键字可以帮助我们实现这个愿望,这两个关键字分别是break与continue。break与continue在c语言中都具有终止循环的功能,而它们的用法是怎样的呢?它们又有什么区别呢?原创 2016-09-27 16:53:30 · 4205 阅读 · 0 评论 -
C语言中的声明和定义
在C语言中,声明指的是描述一个对象类型,指代该程序的其他地方有这样一个对象,而声明主要分为三类:函数声明,变量声明,以及类型的声明。而与声明相对,定义则是确定一个对象的类型,并同时为这个对象分配相应的内存,用于创建这个对象。原创 2016-09-29 22:32:28 · 2264 阅读 · 0 评论 -
关于C语言中的位运算符
在计算机内存中一个数是以它的二进制序列的补码形式保存,而计算机也只认识二进制数0与1。而对于一个数的二进制序列,在C语言中有专门的位运算符对它进行操作。原创 2016-10-26 21:41:17 · 576 阅读 · 0 评论 -
关于char* arr="hello world"与char arr[]="hello world"
首先来看两个程序: 1.#include #include int main(){ char* arr="hello world"; strcpy(arr,"hello"); system("pause"); return 0;}观察这个程序,乍一看可能会觉得这个程序没什么问题,语法都对着,但是一运行,结果就不是我们所想的了。程序崩溃了,然后就很多人就会想会不原创 2016-11-13 20:42:01 · 4207 阅读 · 0 评论 -
浅谈C语言中的函数调用方式-----栈帧结构
首先,关于栈,在地址空间中栈是向下生长的,也就是说栈底地址是高地址,栈顶地址是底地址。而在CPU中有两个寄存器ebp,esp分别是用来保存栈底地址与栈顶地址的,而ebp又被称为帧指针或基址指针,esp又被称为栈指针。而对于同一个栈而言,栈底是不会变的,也就是说ebp的指向是不会变的,而当有入栈和出栈情况时,只会改变栈顶位置也就是esp的指向。 而对于函数而言,每个函数都有自己独立存在的栈帧原创 2016-11-23 10:42:27 · 986 阅读 · 0 评论 -
由栈帧结构引出的一个小bug
上一篇已经谈过在C语言的函数调用过程中函数栈帧结构的变化,对于栈帧结构变化不清楚的可以去找上一篇文章(链接地址:http://blog.youkuaiyun.com/chenkaixin_1024/article/details/53286425) 这里我们来研究一个有趣的东西,也是函数栈帧结构的一方面应用。首先我们来看一张图: 这张图是main函数调用fun函原创 2016-11-23 18:50:22 · 460 阅读 · 0 评论 -
C++三大特性----“继承”
C++作为一门面向对象的语言,其核心便是它的三大特性:封装,继承和多态。 而其中,继承这一特性的存在最主要的目的是为了实现代码的复用,即当你在构建多个类的时候,你发现它们之间有相当一部分的功能和属性是相同,这时你就可以通过继承这一特性来进行代码的复用,将重复的部分作为公共部分来使用,从而不必在构建每一个类的时候都将相同的部分在写一遍。原创 2017-03-02 23:03:31 · 1788 阅读 · 0 评论