![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c语言总结
linyyy
这个作者很懒,什么都没留下…
展开
-
c语言的变量存储方式
c语言的变量存储方式静态存储方式与动态存储方式(具体:自动的、静态的、寄存器的register、外部的extern)在内存中的用户的存储空间分为:程序区、静态存储区、动态存储区。静态存储方式:在程序运行期间,系统对变量分配的固定空间。动态存储方式:在程序运行期间,系统对变量分配的动态空间1>用static来声明静态局部变量,局部变量的值在函数结束后不消失而保留原值,即其占用的存储单元不释放,在原创 2017-03-03 10:10:14 · 849 阅读 · 0 评论 -
C语言指针导学(6)——使用指针时的“陷阱”
C语言指针导学(6)——使用指针时的“陷阱” 六.使用指针时的“陷阱”“C语言诡异离奇,陷阱重重,却获得了巨大成功!”——C语言之父Dennis M.Ritchie。Ritchie大师的这句话体现了C语言的灵活性以及广泛的使用,但也揭示了C是一种在应用时要时刻注意自己行为的语言。C的设计哲学还是那句话:使用C的程序员应该知道自己在干什么。有时用C写的程序会出一些莫名转载 2017-03-07 16:35:53 · 220 阅读 · 0 评论 -
C语言指针导学(5)——指针与结构
C语言指针导学(5)——指针与结构 ——理解C++和数据结构的基础指针不仅可以指向变量、数组、函数,还可以和结构(structure)联系起来,这使得C语言的威力倍增,初学C语言的朋友对结构可能不太重视,对它的理解也不够深入,但事实上,结构是一个非常重要的工具,有了它我们可以很轻松的构建一些仅靠其它C语言特性做起来很复杂的程序。深入地理解结构会对你理解C++的面向对象有很转载 2017-03-07 16:34:59 · 375 阅读 · 0 评论 -
C语言指针导学(4)——分清函数指针和指针函数
C语言指针导学(4)——分清函数指针和指针函数 四.分清函数指针和指针函数关于指针和数组斩不断理还乱的恩怨还真是说了不少,不过现在应该已经理清了。有了上一讲的基础,本讲的内容相对来说就比较容易理解了。1.指向函数的指针(函数指针)来分析这样一个声明,void (*f) ( );虽然()的优先级高于*,但由于有括号存在,首先执行的是解引用,所以转载 2017-03-07 16:33:52 · 245 阅读 · 0 评论 -
C语言指针导学(3)——指针与数组的“爱恨情仇”
C语言指针导学(3)——指针与数组的“爱恨情仇” 三.指针与数组的“爱恨情仇”本将中指针的算术运算本应放在第二讲中,但考虑到它与数组关系密切故将其纳入本讲。1.指针的算术运算在上一讲指针初始化的第4种方式中提到了可以将一个T类型数组的名字赋给一个相同类型的指针,这说明指针可以和数组发生联系,在后面我们会看到这种联系是十分密切的。当有语句char ary[100转载 2017-03-07 16:32:45 · 218 阅读 · 0 评论 -
二.指针的定义及运算
二.指针的定义及运算上一讲已经说过,指针是一种变量,它也有自己的地址,但由于它是专门用来存放地址的变量,所以把它认为是种特殊的变量,既然有着特殊的身份,那么也理应受到特殊的待遇,下面来看看它享受了那些优待。1.指针的定义在C语言中,定义一个普通的变量(如整型数),我们这样做:int i; 而定义一个指针变量(指针)我们需要这样做:int *p ; 还记得吗,一个矩形中的值是有类型的,转载 2017-03-07 16:31:37 · 295 阅读 · 0 评论 -
C语言指针导学(1)——指针到底是什么
一.指针到底是什么指针(pointer)到底是什么,弄清楚这个问题很重要,这是我们所讨论的话题的源头,而在阐述指针是什么之前,我们需要先来看一下变量的概念。我们知道,计算机的内存(primary storage)被划分为多个存储单元,这些存储单元可以以单个或者顺序相连组成一个更大单元的方式被使用。每一个单独的存储单元都是一个字节(byte),它通常由8个位(bit)组成,每一个位可以表示的转载 2017-03-07 16:30:46 · 203 阅读 · 0 评论 -
指针的使用
指针的使用 1.注意:一定要在对指针应用解除应用操作符(*)之前,将指针初始化为一个确定的地址。例子:#includeInt main(){Int a;Int *p;/*****************指针的错误用法:对没有指向确定的地址*******************/*p=10; /******************************原创 2017-03-07 16:21:13 · 211 阅读 · 0 评论 -
c语言强制转换
(type) 其中,type为类型描述符,如int,float等。为表达式。经强制类型转换运算符运算后,返回一个具有type类型的数值,这种强制类型转换操作并不改变操作数本身,运算后操作数本身未改变,例如: int nVar=0xab65; char cChar=char (nVar); 上述强制类型转换的结果是将整型值0xab65的高端两个字节删掉,将低端两个字节转载 2017-03-06 14:35:05 · 1079 阅读 · 0 评论 -
c和c++中动态内存分配
C中分配空间函数是malloc(size),释放空间是free(),例如 int *p=(int *)malloc(sizeof(int)); free(p); C++中对应的是new和delete。 这两组操作还是有较大的不同的,C++的new和delete的优势相对明显点。原创 2017-03-07 11:20:41 · 230 阅读 · 0 评论 -
堆跟栈
1、栈区(stack): 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。2.1 申请方式 栈: 由系统自动分配。 例如,声明在函数中一个局部变量 int b; 系统自动在栈中为b开辟空间转载 2017-03-07 10:34:36 · 179 阅读 · 0 评论 -
C++类(Class)总结
C++类(Class)总结 一、C++类的定义 C++中使用关键字 class 来定义类, 其基本形式如下:class 类名{public://行为或属性 protected://行为或属性private://行为或属性}; 示例: 定义一个点(Point)类, 具有以下属性和方法: ■ 属性:转载 2017-03-20 10:38:40 · 2815 阅读 · 0 评论 -
C语言中 malloc函数用法
一、malloc()和free()的基本概念以及基本用法:使用malloc的情况 首先说明一下,由malloc动态申请的内存空间是堆式的内存空间。 而静态的内存的空间是栈式的。有关堆栈的知识请参考其他相关资料。1. 大容量内存需求 a) 网上说当我们需要的内存空间超过0.5兆的时候最好使用动态内存,也就是利用malloc来申请内存空间。可以这么认为,如果内存过大,就会不转载 2017-03-06 11:58:08 · 56915 阅读 · 3 评论 -
内联函数
这里想要说的是,内联函数并不是一个增强性能的灵丹妙药。只有当函数非常短小的时候它才能得到我们想要的效果,但是如果函数并不是很短而且在很多地方都被调用的话,那么将会使得可执行体的体积增大。最令人烦恼的还是当编译器拒绝内联的时候。在老的实现中,结果很不尽人意,虽然在新的实现中有很大的改善,但是仍然还是不那么完善的。一些编译器能够足够的聪明来指出哪些函数可以内联哪些不能,但是,大多数编译器就不那么聪明了转载 2017-03-09 11:18:59 · 250 阅读 · 0 评论 -
c语言 预处理指令
指令 用途 # 空指令,无任何效果 #include 包含一个源代码文件 #define 定义宏 #undef 取消已定义的宏 #if 如果给定条件为真,则编译下面代码 #ifdef 如果宏已原创 2017-03-08 15:12:04 · 227 阅读 · 0 评论 -
C语言指针导学(2)——指针的定义及运算
C语言指针导学(2)——指针的定义及运算 二.指针的定义及运算上一讲已经说过,指针是一种变量,它也有自己的地址,但由于它是专门用来存放地址的变量,所以把它认为是种特殊的变量,既然有着特殊的身份,那么也理应受到特殊的待遇,下面来看看它享受了那些优待。1.指针的定义在C语言中,定义一个普通的变量(如整型数),我们这样做:int i; 而定义一个转载 2017-03-07 16:36:49 · 538 阅读 · 0 评论