(1)C
文章平均质量分 67
aaron_xyt
会当凌绝顶,一览众山小
展开
-
一段简单程序从汇编看C指针
首先需要明白的两个概念: 指针:普通变量的地址 指针变量:该变量内存放的是指针程序分析如下:#includevoid main(){int a,b;a = 10;b = 100;int *pointa,*pointb; //声明 *只是表示指针类型 int表示只能指向长度为4字节的int类型pointa = &a; //指针存放地址,&取地原创 2012-03-29 18:05:43 · 686 阅读 · 0 评论 -
C病毒读写,自我启动复制
#include #include #include #include #include /* copy outfile to infile */void copyfile(char *infile, char *outfile){ FILE *in,*out; in = fopen(infile,"r"); out = f原创 2012-05-14 02:09:05 · 1430 阅读 · 1 评论 -
windows下使用Eclipse+CDT搭建C/C++程序开发环境
ACM/ICPC总决赛已经连续三年采用Linux+Eclipse作为C/C++和Java的开发环境。本文接下来会帮助大家在熟悉的Windows操作系统上搭建Eclipse开发平台,用于编写C/C++程序。对于Windows系统版本的要求是win 2000及以上。一、下载所需的软件JDK 1.4:http://java.sun.com/j2se/1.4.2/downloa原创 2012-04-05 11:14:19 · 1875 阅读 · 1 评论 -
printf函数实现
要实现printf函数需要考虑如下三点:1.如何告诉printf传入参数的个数:参数个数不确定。2.printf如何访问到这些参数。3.函数调用完成后,系统如何释放在堆栈的参数。printf函数的定义:(原型)int _cdecl printf(const char* format,...);注:_cdecl是C/C++缺省调用方式。 _cdecl调原创 2012-04-04 01:39:16 · 758 阅读 · 0 评论 -
函数调用方式
首先,让我们来分个类,调用方法分为两大类另加一个较特殊的__thiscall. 第一类:__stdcall类 别名:WINAPI,CALLBACK,PASCAL。该类特点是:主调函数负责参数入栈,由函数本身负责栈的恢复. 第二类:__cdecl类 别名:C/C++中默认调用方式,若你定义函数未指定函数调用约定(Calling Conventions),例如在VC6中下面两个函数原创 2012-04-04 01:38:35 · 545 阅读 · 0 评论 -
C高级(5)--C++函数的高级特性
对比于C 语言的函数,C++增加了重载(overloaded)、内联(inline)、const 和virtual四种新机制。其中重载和内联机制既可用于全局函数也可用于类的成员函数,const 与virtual 机制仅用于类的成员函数。1.重载重载是如何实现的?同名函数,只是检查函数参数个数、类型、顺序。无法通过返回类型来判断其他都相同的函数。EX:C函数声明如: v原创 2012-04-03 23:48:58 · 1022 阅读 · 0 评论 -
C高级(6)--其他编程经验
Const:常量、const 更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体。Const只能修饰输入参数、不能修饰输出参数。1.如果输入参数采用“指针传递”,那么加const 修饰可以防止意外地改动该指针,起到保护作用。2.如果输入参数采用“值传递”,由于函数将自动产生临时变量用于复制该参数,该输入参数本来就无需保护,所以不要加const 修饰。3.当参数是对象类型时,原创 2012-04-04 00:23:39 · 554 阅读 · 0 评论 -
C高级(2)--命名规则、常量
第二章 命名规则microsoft的“匈牙利”法。windows应用程序:大小写混排方式。unix应用程序才有小写下划线常量用全大写字母,用下划线分割单词。静态变量加前缀s_全局变量加前缀g_类的数据成员加前缀m_表达式与基本语句运算符优先级复合表达式:书写简单、提高编译效率浮点变量与零值比较无论是float还是double类型的变量,都有精度限原创 2012-04-02 22:06:06 · 658 阅读 · 0 评论 -
C高级(4)--内存管理
1.内存分配方式有三种:(1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static 变量。(2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。(3) 从堆上分配,亦称动态内存分原创 2012-04-03 15:37:39 · 543 阅读 · 0 评论 -
C高级(3)--函数设计
第四章 函数设计函数的接口设计+内部实现的一些规则。a。函数接口:参数+返回值参数和返回值的传递方式:值传递+指针传递。。C++ 语言中多了引用传递(pass by reference)。由于引用传递的性质象指针传递,而使用方式却象值传递,初学者常常迷惑不解,容易引起混乱。参数的规则:1.如果参数是指针,且仅作输入用,则应在类型前加const,以防止该指针在函数体内被意外修原创 2012-04-03 09:57:34 · 533 阅读 · 0 评论 -
C高级(1)--文件结构
C/C++程序一般包括两个文件:头文件.h+实现(定义文件).cpp1.1版权和版本的声明定与头文件和定义文件开头a。版权信息b。文件名称,标示符,摘要。c。当前版本号,作者/修改者,完成日期d。版本历史信息1.2头文件结构头文件由三个部分组成:a。版权和版本声明b。预处理块c。函数和类结构声明规则1:为防止头文件被重复引用,使用if原创 2012-04-01 23:42:24 · 566 阅读 · 0 评论 -
C语言中级部分
一.C语言基础部分掌握的是:基本知识和基本概念。告诉我们有些什么,能干什么。却没告诉何时使用,为何这样用,如何组合他们。C初级告诉如何通过编译,C中级告诉如何避开虽然通过编译但仍然存在的错误。语言紧紧是语法层面上的东西,打造的是整体的零件部分。语义关心的是系统整体,正是程序员所做的,即如何有效组合语法产生语义。1.C语言语法要素1:字符集关键字运算符标识符表原创 2012-04-01 13:08:26 · 1470 阅读 · 0 评论 -
sizeof()与strlen()的区别
1. sizeof()是计算参数所占用的内存的单元数(字节数)。数组的话,计算数组声明的长度。字符串的话,计算字符个数+1。2.strlen(const char *),此函数在msdn里面的解释:returns the number of characters in string, excluding the terminal NULL. No return value is reserve原创 2012-04-01 12:19:48 · 473 阅读 · 0 评论 -
引用与指针
引用的一些规则如下:(1)引用被创建的同时必须被初始化(指针则可以在任何时候被初始化)。(2)不能有NULL 引用,引用必须与合法的存储单元关联(指针则可以是NULL)。(3)一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变所指的对象)。原创 2012-03-31 14:07:43 · 365 阅读 · 0 评论 -
typedef_结构体指针_动态分配_void*
#include#includetypedef struct student{ int age; int sex;}student1,*p;void main(){//typedef用法 struct student student; //student student; //结构体和结构体变量可以同名 //student原创 2012-03-29 18:38:31 · 2445 阅读 · 0 评论 -
指针结构体_数组指针结构体_指针数组结构
#include#includetypedef struct student{int age;int sex;struct student *next;}student,*p,(*p_array_point)[10],*p_point_array[20];void main(){//普通结构体变量student stu;stu.age = 10;stu.原创 2012-03-29 18:39:21 · 757 阅读 · 0 评论 -
C语言图形编程
C语言图形函数介绍篇 Turbo C提供了非常丰富的图形函数, 所有图形函数的原型均在graphics. h中, 本节主要介绍图形模式的初始化、独立图形程序的建立、基本图形功能、图形窗口以及图形模式下的文本输出等函数。另外, 使用图形函数时要确保有显示器图形驱动程序*BGI, 同时将集成开发环境Options/Linker中的Graphics lib选为on, 只有这样才能保证正确使转载 2012-05-22 10:23:20 · 907 阅读 · 0 评论