C语言学习
文章平均质量分 66
我的C语言学习历程
Payshent
相互交流,共同进步
展开
-
c语言知识框架图
C语言知识框架图原创 2016-11-02 19:02:16 · 2583 阅读 · 1 评论 -
对于单链表的基本操作
对于单链表的基本操作 如果要讲到单链表的基本操作,首先我们就得知道什么是链表?下面我就给大家简单介绍一下什么是链表:链表是一种物理存储单元上非连续、非顺序的存储结构,而链表中的链接顺序考的是指针的链接次序来决定的。节点在运行时动态生成,而每个结点包括存储数据的数据域和指向下一个结点的指针域。而每个结点只有一个链域的链表则称为单链表。单链表中每个结点的存储地址是存放在其前趋结点next域中原创 2016-06-16 08:46:33 · 441 阅读 · 0 评论 -
memcpy与memmove
我们知道字符串操作函数的操作对象就是字符串,但想要将一段内存的数据复制到另一段内存中去的时候我们就得用到另外一种拷贝函数----内存拷贝函数。 内存拷贝函数的作用就是:将源内存地址的N个字节拷贝到目标内存地址中去。一、memcpy函数的实现 memcpy的函数原型:void* memcpy(void* dst, const void* src, size_t原创 2017-03-23 10:55:37 · 924 阅读 · 0 评论 -
C语言模拟实现继承、多态
一、面向对象与面向过程说到C语言和C++的区别有人就会说C语言是面向过程的语言,而C++是面向对象的语言。那么到什么是面向过程?什么又是面向对象呢?下面我就简单的说说我对与面向过程和面向对象的认识。 1)什么是面向对象和面向过程? 面向过程就是分析解决问题的步骤,然后用函数把这些步骤一步一步的进行实现,在使用的时候进行一一调用就行了,注重的是对于过程的分析。面向对原创 2017-04-17 13:46:37 · 740 阅读 · 0 评论 -
C++中局部变量、全局变量、静态局部变量、静态全局变量
我们知道在C++中的变量根据定义的位置的不同生存周期,具有不同的作用域。具体分为6种:原创 2017-04-19 15:05:15 · 2196 阅读 · 0 评论 -
static--修饰(局部变量、全局变量、函数)
在我们刚开始接触接触C语言的时候一定听说过static关键字,在刚开始学习C语言的时候相信很多人都会对static感到记忆深刻,刚开始学的时候我也一脸懵逼,现在觉得时候做一个归纳整理了。static的用法也就下面几点, 1):static修饰局部变量 2):static修饰全局变量 3):static修饰函数一、static修饰局部变量普通的局部变量是在栈上进行分配的,局部变量所处的函数原创 2017-04-19 17:17:07 · 2321 阅读 · 1 评论 -
const的常见用法
在我们学习C语言或者C++的时候const或许是其中一个容易混淆的知识点,那么今天就来总结一下const的一些用法。const 的用法主要是防止定义的对象被再次的修改,也就是const修饰的是一个常量而不是一个变量。那么既然是一个常量的话就需要对它进行初始化一个值。 下面就来介绍const的几种常见用法: 1、用于定义常量,定义之后的对象不能再被修改。 const int a = 100;原创 2017-04-30 11:22:36 · 631 阅读 · 0 评论 -
大小端存储问题
在生活中我们会遇到很多大小端的问题,别看这是小小的问题有时候却能把我们摔一个跟头。 大端存储:高位存在低地址,低位存在高地址,高位先存。 小端存储:高位存在高地址,低位存在低地址,低位先存。 举个栗子说明一下: 内存从0X0000开始有以下的数据 0x0000 0x12 0x0001 0x34 0x0002 0xab 0x0003原创 2017-05-01 09:47:39 · 551 阅读 · 0 评论 -
堆栈及函数调用栈帧
函数调用是程序设计中最为重要的一个环节,函数调用的操作包括从一块代码到另一块代码之间的双向数据传递和执行的过程。数据传递包括:函数参数和返回值。 大多数的cpu上的程序使用栈来实现函数的调用操作,栈用来传递函数的参数,保存返回的信息,存储寄存器中的数据。单个函数的调用操作所使用的栈部分称为栈帧结构,栈帧结构的两端由两个指针来指定。寄存器ebp通常用作帧的指针,esp用作栈的指针,esp随着数据的入原创 2017-05-01 11:45:07 · 990 阅读 · 0 评论 -
C/C++程序的编译链接过程
在以前学习C语言的时候,想必大家写的第一个代码都是“hello world”吧。在以前我们调试一个代码的时候是在vc++6.0或者是在vs上面调试的,这种就是集成开发环境,它为我们简化了一个代码的编译链接的过程但是却对初学者又蒙上了面纱。而当我们学习了更多一些知识的时候就该看看这个面纱下面到底隐藏着什么。 大家都知道我们所编写的C语言程序只是一个后缀为“.c”的文件,这个文件是不能直接被计算机所运原创 2017-05-16 17:29:19 · 2566 阅读 · 0 评论 -
函数调用规则
关于函数的调用规则(调用约定),大多数时候是不需要了解的,但是如果需要跨语言的编程,比如VC写的dll要delphi调用,则需要了解。 microsoft的vc默认的是__cdecl方式,而windows API则是__stdcall,如果用vc开发dll给其他语言用,则应该指定__stdcall方式。堆栈由谁清除这个很重要,如果是要写汇编函数给C调用,一定要小心堆栈的清除工作,如转载 2017-05-01 11:56:41 · 746 阅读 · 0 评论 -
C、C++中的结构体
今天复习一下struct,顺便挖掘一下以前没注意的小细节:基本定义:结构体,通俗讲就像是打包封装,把一些有共同特征(比如同属于某一类事物的属性,往往是某种业务相关属性的聚合)的变量封装在内部,通过一定方法访问修改内部变量。结构体定义:第一种:只有结构体定义[cpp] view plain copy print?struct stuff{ char job[20];转载 2017-05-02 09:40:07 · 613 阅读 · 0 评论 -
结构体内存对齐
一、内存对齐的原因 1、为了提高程序的性能,数据结构应该尽可能的在自然边界上对齐。原因是为了访问未对齐的内存,处理器需要进行两次访问而访问对齐的内存只需要一次就够了。这样的方式称为“用空间来换取时间”,在对时间复杂度有要求的问题会采用这样的方法。 2、内存对齐可以增加程序的可移植性,因为不是所有的平台都能随意的访问内存。有些平台只能在特定的地址处取内存。 栗子:#include <iost原创 2017-05-02 20:07:32 · 586 阅读 · 0 评论