1,C语言概述 C语言是70年代问世,它实际先有语言后有标准。1978年贝尔实验室B.W.Kernighan和D.M.Ritchit合著“The C Promgaming language”一本书,这本书就作为C的基本标准,以后ANSI出了一ANSI C标准于1983年公布。C正因为没有标准,因此依赖于编译器实现,不同的编译器实际上就是不同的C标准。现在最新的标准是C0X标准。任何一个C语言都包
原创
2011-09-30 21:08:55
947阅读
6.指针 指针实际上同前面所述的基本数据类型是一样的。它不是构造型数据类型,在前面章节里将指针单独提出来作为一个数据类型,实际上,如果我们这样想,在内存中存储一些数据,这些数据从二进制来说都是01,是没有任何类型之分的,只有当你结合现实的一定意义之后才有相应的数据类型。从汇编的角度,我们知道内存是按线性顺序进行编址的,计算机的数据总线或者地址总线根据线性地址确定内存的空间。这是确定的,唯一的。也
原创
2011-10-08 22:00:07
516阅读
前面我们讲的指针都指向基本数据类型,除了数组之外,还有一个比较复杂的数据类型就是字符串,前面我们学到字符串用双引号表示,在内存中存储是以”\0”作为缺省结束标志。实际上字符串完全可以用数组来表示。因为使用的内存都是按顺序的线性存储。并且空间在申明时就已经确定。如下图所示是两种字符串变量的声明方式。 在内存中如下存储,注意最后的一个位置是”\0”,所有string[]数组的长度是14,不是1
原创
2011-10-11 19:59:25
877阅读
前面的讨论中,我们已经明确了,一个函数的参数可以是指针,对一个函数,缺省编译器给它分配了一个指针,可以用一个指针变量指向这个函数指针。同样函数的返回类型也可是指针类型。所以通常意义的指针函数和函数指针是指的两个完全不同的东西。所谓的指针函数是指返回类型是指针变量的函数。而函数指针则是这个函数在编译器分配下的地址。与此类似的概念是指针数组和指向指针的指针概念。指针数组指的是数组元素的类型是指针。
原创
2011-10-12 22:01:02
471阅读
前面讲了一些函数的基本概念,函数不能嵌套定义,但可以进行嵌套调用。并且,还可以进行递归调用,这是因为函数在内存中是存储在栈上的,本身栈就可以进行递归操作。递归的效率在所有实现中是最慢的,但是给程序带来是非常简洁,可读性较强,如果在不严重影响性能的情况下也是可以适当的使用递归函数的。如下图所示,主函数调用a函数,a函数又调用b函数,当b函数执行完返回到a函数,再由a函数返回到主函数main中,整个应
原创
2011-10-07 22:34:09
501阅读
点赞
前面我们都是讲的简单数据类型,定义一个类型变量,这个变量不论是数组还是指针,还是基本数据类型,它只有一种类型,是INT就是INT,如果一个数据结构中需要多种类型,如描述一个学生的属性,如学号用INT,姓名用CHAR数组,性别是CHAR,年龄是int,成绩是double,地址是char数组。如下表示: 结构体就是将不同的数据类型组合成一个有机整体,以便于引用。声明一个结构体与定义一个结构变量是
原创
2011-10-17 21:27:01
517阅读
9.动态内存管理 前面我们讲述的都是C语言中参与表达式的一些基本元素,这些基本元素都有一个共同特点,就是在声明时,C语言编译器就将它的内存地址固定好,比喻说一个int a变量,C语言编译器在生成汇编时候就将其地址给出。包括指针变量、数组、结构体,也是一样的。这些变量在内存中存在,不会产生内存错误。但接下来,我们会讲述另一种元素,这也是C语言的组成部分,它适用直接操作内存部分,通过这些直接操作内存
原创
2011-10-19 20:49:52
485阅读
13文件操作 计算机领域中的文件,这个概念是复杂的,但是也简单的,同现实世界中的文件不一样,但从理论意义上应该差不多。计算机中文件就是一些相关数据的有序集合。这个数据集合有一个名称叫文件名。而以文件及文件系统管理的数据都是都以磁盘、光盘、移动硬盘等介质保存的,只有在使用时,才调入内存参与CPU计算,因此文件作为数据的集合体,其保存的数据区别于内存驻留的数据的不同,就是它是常时间保存的。通常操作系统
原创
2011-10-21 21:46:39
489阅读
我们学习C语言时会在变量的作用域中学到,一个变量可能是局部变量,也可能是全局变量,还有可能是静态变量,及寄存器变量。当然这么变量的不同全是因为变量存储位置不同,我们在学习C++第一章节时也提到C++语言在生成汇编时,C++编译器会按排不同的数据和代码在不同的存储区域。其中这里我们将要学习的静态成员和静态函数,它们都是存储在全局区或者叫静态区,是由不同的对象共同拥有一份拷贝。 【1】静态成员变量
原创
2011-11-08 22:01:44
431阅读
我们平时定义的变量最终都会保存在内存里,内存的最小存储单位称为内存单元。通常,一个字节称为一个内存单元。而我们定义的变量就保存在这些内存单元里,为了正确地访问这些数据,必须为每个内存单元...
原创
2021-06-02 11:16:22
193阅读
上一篇将C++基本类概念解决了,接下来讲述两个重要概念,就是C++对象有属性和函数,那么如何访问呢?通常比喻CStudent 有一个name属性,那么student1对象可以用student1.name来访问这个属性。那么如果在函数中怎么访问呢?特别是如果函数中有与属性同名的局部变量或者形参,那么怎么解决这个问题呢?这就用到this指针,this 指针不是指向函数或者类地址,而是指向对象地址。如下
原创
2011-11-06 16:27:00
684阅读
C++作为C的超集,除了支持C的所有功能之外,还有一点特殊的要求,这是作为C++的宣传口号,但实际上,学习C++,不能从C开始,因为两者是有非常多的区别,从面向对象与面向工程的区别来说,这根本就是两个不同的语言,从编译器要求来说,也是有非常大的区别,使用不同的编译器和不同的类库。那么学习C++需不需要C基础呢?当然需要。有C的基础再加上C++的发挥,对程序的理解非常好。C++首先是以一个面向对象的
原创
2011-11-06 11:35:32
568阅读
C++ 区别于C的一个重要概念就是C++是面向对象的,C是面向过程的。其中重载(overload)是C++仅有的一种特性,依赖于C++编译器。重载一般发生在函数之上,重载可以出现在我们前面学习的三种函数:普通函数,友元函数,成员函数。另外重载还可以发生的运算符之上。下面分别解说如下: 【1】函数重载 同名但是不同参数类型或者参数个数的函数,叫函数重载。从这个定义里我们要需要注意以下几点:重载发生
原创
2011-11-10 22:06:56
439阅读
面向对象编程与面向过程的一个根本区别,就是面向对象编程在虚拟的计算机世界构造出了形形色色的对象,很显然这些对象之间必然要发生关系,如何区别描述这些关系也是面向对象这门课所要研究的问题。我们都知道其中有非常多的概念,有些概念还非常抽象,根本难以理解,特别是如果逻辑思维不好的话,会根本被这些概念绕进去。那么这里我们怎么去理解这些东西呢?以我的经验,我想我们还是从生活来理解,我们相像一下计算机描述的世界
原创
2011-11-10 22:22:03
522阅读
C#点滴 – CLR, CTS…等等基本概念
1. CLR – Common Language Runtime()
为.NET应用程序提供运行环境。定位、加载和管理.NET类型,同时也负责一些底层细节的工作,如内存管理、创建应用程序域、线程和对象上下文边界,安全检查等等。
2. CTS – Common Type Syst
转载
精选
2011-07-22 15:00:43
780阅读
一.代码框架 #include<iostream> #include<cstdio> //或者#include<stdio.h> using namespace std; int main(){ // } 二.整型常量 int n=123;//十进制 int m=0123;//八进制 int l=0 ...
转载
2021-09-08 20:15:00
268阅读
2评论
指针是c/c++特有的吗?每种编程语言都使用指针,但Java、c#等将指针隐藏,而c/c++将指针暴露给了程序员 如何理解符号表?记录变量名及变量对应的地址。在编译时生成,生成后不可改 c++中的内存有哪几种?如何分配?存储什么内容?静态存储区、栈存储区、堆存储区。静态存储区在编译时分配,在程序的整
转载
2019-03-19 21:48:00
62阅读
2评论
汇编语言是指直接工作在硬件之上的语言,但不是机器语言,机器语言是机器指令的集合。汇编语言是汇编指令的集合,汇编指令是便于记忆的机器指令的另一种书写方式,也就是说是机器指令的助记符。 汇编指令与数据在内存中存储都是二进制形式存储,因此CPU是无法直接区分一块内存是地址还是数据,但是CPU在与内存(这里指得所有芯片内存)进行数据传输时,将传输总线分成三大类:地址总线、数据总线、控制总线。这三类
原创
2011-08-18 17:50:40
1535阅读
继承多态等等。。
原创
2013-12-05 00:07:33
738阅读
STL,英文全称 standard template library,中文可译为标准模板库或者泛型库,其包含有大量的模板类和模板函数,是 C++ 提供的一个基础模板的集合,用于完成诸如输入/输出、数学计算等功能。STL 最初由惠普实验室开发,于 1998 年被定为国际标准,正式成为 C++ 程序库的重要组成部分。STL从广义上讲分为三类:algorithm(算法)、container(容器)和it
原创
2020-12-17 21:28:31
158阅读