自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

云下的云的博客

初学C语言自我学习知识感悟

  • 博客(15)
  • 收藏
  • 关注

原创 if else 与switch 效率&实现机制

if else 与switch case 语句效率如何switch case 语句在某些时候又是怎样实现的

2017-12-13 17:27:42 3914

原创 static总结

编译器如何办到静态局部变量只被初始化一次 static修饰后的变量都存放在数据区中的静态区域,而编译器会在该变量的空间所在处,让esp寄存器在向上偏移一个字节的大小,用这个空间来存放标记,静态变量为初始化时这个空间里存放 打的是0,初始化后被编译器改1,这样编译器就能知道我已近初始化,以后不在执行初始化指令。 静态全局变量有以下特点: 1、该变量在全局数据区分配内存; 2、未经初始化的静态全

2017-11-15 20:46:55 302

原创 extern的学习

extern是计算机语言中的一个关键字,可置于变量或者函数前,以表示变量或者函数的定义在别的文件中。提示编译器遇到此变量或函数时,在其它模块中寻找其定义,另外,extern也可用来进行链接指定。1声明变量声明extern关键字的全局变量可以使得它们能够跨文件被访问。一般我们把所有的全局变量放在.cpp文件中,然后用与之同名的.h文件把需要在其他文件使用的全局变量和全局函数用extern加以声明。Fi

2017-11-15 19:56:00 278

原创 关于数组名与指针的再学习

一维数组: 这里我们定义一维数组和一些其他变量予以区分。 char ar[10]={}; char (*p)[10]=&ar; char *pt=ar; //1 printf("%d \n",sizeof(ar)); //2 printf("%d %d %d %d \n",ar,*ar,ar+1,*ar+1); //3 printf(

2017-11-09 22:18:18 295

原创 学习引用与指针区别

性质区别: 指针 1、可以未初始化,可以赋空 2、一个变量,有两个值,一个自身的值用于存放地址,一个由自身所存储值指向内存的一个存储单元 4、可以有多级指针 5、可以有const指针 6、指针的值初始化后可以改变 7、而 sizeof指针 得到的是指针本身的大小 引用 1、定义局部引用时必须初始化,引用分配内存

2017-10-27 23:08:16 262

原创 学习数组与指针

首先什么是指针 一般我们知道int *p;表示定义了一个整型的指针变量,其空间大小是4byte,空间名字是p,同时限定这 4 个字节的空间里面只能存储某个内存地址,即使你存入别的任何数据,都将被当作地址处理,而且这个内存地址开始的连续 4 个字节上只能存储某个 int类型的数据。 p是一个指针变量,p里所存储的内存地址处的内存称为p所指向的内存, 同时在 32 位系统下,不管什么样的指针类型,

2017-10-21 16:07:40 320

原创 c中内存的学习

关于C中内存的分区学习

2017-10-20 00:33:21 266

原创 学习定义与声明

定义 与 声明 《C++Primer》第四版 2.3.5节中这么说到: 1、变量定义:用于为变量分配存储空间,还可为变量指定初始值。程序中,变量有且仅有一个定义。 2、变量声明:用于向程序表明变量的类型和名字。 3、定义也是声明:当定义变量时我们声明了它的类型和名字。 4、extern关键字:通过使用extern关键字声明变量名而不定义它。我认为声明是向编译器告知我将要使用这个标识符(我有

2017-10-16 22:35:31 379

原创 goto,break,return

break语句    1. switch语句中,break语句会终止其后语句的执行,退出switch语句。  2. 使一个循环立即结束,也就是说在循环中遇到break语句时,循环立即终止,程序转到循环体后的第一个语句去继续执行。     3. 注:  1. break语句在循环中使用时,总是与if一起使用,当条件满足(或不满足)时,负责退出循环。  2. 如果循环体中使用s

2017-10-13 20:44:14 349

原创 inline关键字 简述

inline关键字inline(内联)函数:将普通的函数定义为inline函数,可以避免普通函数入栈出栈的开销,它是将函数内的代码直接粘贴到调用处。除此之外,它和普通函数无其他区别。在函数声明或定义中函数返回类型前加上关键字inline,即可以把函数指定为内联函数。内联函数的声明和内联函数的函数体的定义必须在一起。要成为inline函数必须具备以下几点:   1

2017-10-13 19:54:34 533

转载 __cdecl与_stdcall

__cdecl  是C Declaration的缩写(declaration,声明),表示C语言默认的函数调用方法:所有参数从右到左依次入栈,这些参数由调用者清除,称为手动清栈。被调用函数不会要求调用者传递多少参数,调用者传递过多或者过少的参数,甚至完全不同的参数都不会产生编译阶段的错误。 __stdcall 被这个关键字修饰的函数,其参数都是从右向左通过堆栈传递的, 函数调用在返回前

2017-09-30 14:15:03 445

原创 const与define的一点区别

观察下列两种写法有什么区别 #define PINT int * typedef int * SINT;  首先我们有一个需要注意:  #define 宏常量是在预编译阶段进行简单替换。 对typedef而言,typedef 的真正意思是给一个已经存在的 数据类型(注意:是类型不是变量)取一个别名,而非定义一个新的数据类型。

2017-09-29 12:06:15 368

原创 define与enum与const

enum枚举类型只能定义整型(字符型ascII码)

2017-09-27 22:18:47 567

转载 寻址方式

一、指令寻址   1、顺序寻址方式   指令在内存中按顺序排放,依次取出必须使用程序计数器(又称指令计数器)PC来计数指令的顺序号,该顺序号就是指令在内存中的地址。   2、跳跃寻址方式   转:当程序转移执行的顺序时,指令的寻址就采取跳跃寻址方式。所谓跳跃,是指下条指令的地址码不是由程序计数器给出,而是由本条指令给出。   注意,程序跳跃后,按新的指令地址开始顺序执行。因此,

2017-09-26 16:24:48 2562

转载 一些汇编指令和寄存器。

今天学习C中对于一些代码中,执行原理不是清楚的了解,如简单的字符型char数据,编译器是如何处理的。以及等等很多只看过程远远不能清楚了解内部原理,对于学习有很深的障碍。所有有必要去学习基础汇编与寄存器的知识,通过编译器的反汇编来了解。

2017-09-19 23:00:24 3355

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除