![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
(1)C
文章平均质量分 67
aaron_xyt
会当凌绝顶,一览众山小
展开
-
一段简单程序从汇编看C指针
首先需要明白的两个概念: 指针:普通变量的地址 指针变量:该变量内存放的是指针 程序分析如下: #include void main(){ int a,b; a = 10; b = 100; int *pointa,*pointb; //声明 *只是表示指针类型 int表示只能指向长度为4字节的int类型 pointa = &a; //指针存放地址,&取地原创 2012-03-29 18:05:43 · 652 阅读 · 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 · 1396 阅读 · 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 · 1840 阅读 · 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 · 746 阅读 · 0 评论 -
函数调用方式
首先,让我们来分个类,调用方法分为两大类另加一个较特殊的__thiscall. 第一类:__stdcall类 别名:WINAPI,CALLBACK,PASCAL。该类特点是:主调函数负责参数入栈,由函数本身负责栈的恢复. 第二类:__cdecl类 别名:C/C++中默认调用方式,若你定义函数未指定函数调用约定(Calling Conventions),例如在VC6中下面两个函数原创 2012-04-04 01:38:35 · 514 阅读 · 0 评论 -
C高级(5)--C++函数的高级特性
对比于C 语言的函数,C++增加了重载(overloaded)、内联(inline)、const 和virtual 四种新机制。其中重载和内联机制既可用于全局函数也可用于类的成员函数,const 与 virtual 机制仅用于类的成员函数。 1.重载 重载是如何实现的? 同名函数,只是检查函数参数个数、类型、顺序。无法通过返回类型来判断其他都相同的函数。 EX:C函数声明如: v原创 2012-04-03 23:48:58 · 989 阅读 · 0 评论 -
C高级(6)--其他编程经验
Const:常量、const 更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体。 Const只能修饰输入参数、不能修饰输出参数。 1.如果输入参数采用“指针传递”,那么加const 修饰可以防止意外地改动该指针,起到保护作用。 2.如果输入参数采用“值传递”,由于函数将自动产生临时变量用于复制该参数,该输入参数本来就无需保护,所以不要加const 修饰。 3.当参数是对象类型时,原创 2012-04-04 00:23:39 · 525 阅读 · 0 评论 -
C高级(2)--命名规则、常量
第二章 命名规则 microsoft的“匈牙利”法。 windows应用程序:大小写混排方式。 unix应用程序才有小写下划线 常量用全大写字母,用下划线分割单词。 静态变量加前缀s_ 全局变量加前缀g_ 类的数据成员加前缀m_ 表达式与基本语句 运算符优先级 复合表达式:书写简单、提高编译效率 浮点变量与零值比较 无论是float还是double类型的变量,都有精度限原创 2012-04-02 22:06:06 · 648 阅读 · 0 评论 -
C高级(4)--内存管理
1.内存分配方式有三种: (1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的 整个运行期间都存在。例如全局变量,static 变量。 (2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函 数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集 中,效率很高,但是分配的内存容量有限。 (3) 从堆上分配,亦称动态内存分原创 2012-04-03 15:37:39 · 535 阅读 · 0 评论 -
C高级(3)--函数设计
第四章 函数设计 函数的接口设计+内部实现的一些规则。 a。函数接口:参数+返回值 参数和返回值的传递方式:值传递+指针传递。。C++ 语言中多了引用 传递(pass by reference)。由于引用传递的性质象指针传递,而使用方式却象值传递,初学者常常迷惑不解,容易引起混乱。 参数的规则: 1.如果参数是指针,且仅作输入用,则应在类型前加const,以防止该指针在函数体内被意外修原创 2012-04-03 09:57:34 · 504 阅读 · 0 评论 -
C高级(1)--文件结构
C/C++程序一般包括两个文件:头文件.h+实现(定义文件).cpp 1.1版权和版本的声明 定与头文件和定义文件开头 a。版权信息 b。文件名称,标示符,摘要。 c。当前版本号,作者/修改者,完成日期 d。版本历史信息 1.2头文件结构 头文件由三个部分组成: a。版权和版本声明 b。预处理块 c。函数和类结构声明 规则1:为防止头文件被重复引用,使用if原创 2012-04-01 23:42:24 · 558 阅读 · 0 评论 -
C语言中级部分
一.C语言基础部分掌握的是:基本知识和基本概念。告诉我们有些什么,能干什么。却没告诉何时使用,为何这样用,如何组合他们。 C初级告诉如何通过编译,C中级告诉如何避开虽然通过编译但仍然存在的错误。 语言紧紧是语法层面上的东西,打造的是整体的零件部分。语义关心的是系统整体,正是程序员所做的,即如何有效组合语法产生语义。 1.C语言语法要素1: 字符集 关键字 运算符 标识符 表原创 2012-04-01 13:08:26 · 1457 阅读 · 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 · 460 阅读 · 0 评论 -
引用与指针
引用的一些规则如下: (1)引用被创建的同时必须被初始化(指针则可以在任何时候被初始化)。 (2)不能有NULL 引用,引用必须与合法的存储单元关联(指针则可以是NULL)。 (3)一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变所指的对象)。原创 2012-03-31 14:07:43 · 355 阅读 · 0 评论 -
typedef_结构体指针_动态分配_void*
#include #include typedef struct student{ int age; int sex; }student1,*p; void main(){ //typedef用法 struct student student; //student student; //结构体和结构体变量可以同名 //student原创 2012-03-29 18:38:31 · 2416 阅读 · 0 评论 -
指针结构体_数组指针结构体_指针数组结构
#include #include typedef 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 · 745 阅读 · 0 评论 -
C语言图形编程
C语言图形函数介绍篇 Turbo C提供了非常丰富的图形函数, 所有图形函数的原型均在graphics. h中, 本节主要介绍图形模式的初始化、独立图形程序的建立、基本图形功能、图形窗口以及图形模式下的文本输出等函数。另外, 使用图形函数时要确保有显示器图形驱动程序*BGI, 同时将集成开发环境Options/Linker中的Graphics lib选为on, 只有这样才能保证正确使转载 2012-05-22 10:23:20 · 894 阅读 · 0 评论