自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 收藏
  • 关注

转载 7. 垃圾回收(Garbage Collection)

7. 垃圾回收(Garbage Collection)1.1 通过轮询机制,及时释放内存空间    Java编程语言提供了一种系统级线程以跟踪内存的分配1.2 无需程序控制1.3 餐馆的例子

2014-05-18 11:42:11 756

转载 6. Java 虚拟机及Java的跨平台特性

6. Java 虚拟机及Java的跨平台特性1.1 JVM (Java Virtual Machine)1.2 在真实机器中用软件模拟实现的一种想象机器1.3 Java虚拟机代码被存储在 .class文件中1.4 可以实现“一次编译,到处运行”的跨平台性1.5 虚拟机本身不跨平台1.6 例子          一个领导人有多个翻译该博客教程视频地址:http:/

2014-05-18 11:36:54 966

转载 5. Java 平台划分

5. Java 平台划分1.1 JavaSE Java Standard Edition Java 标准版1.2 JavaME Java Micro Edition Java 微型版1.3 JavaEE Java Enterprise Edition Java 企业版该博客教程视频地址:http://geek99.com/node/1594

2014-05-18 11:08:10 561

转载 4. Java 语言的特性

4. Java 语言的特性1.1 简单的1.2 面向对象的1.3 分布式的1.4 解释型1.5 强壮的1.6 安全的1.7 结构中立的1.8 跨平台的1.9 多线程的1.10 动态的

2014-05-18 10:38:35 447

转载 3. Java 语言的发展简史

3. Java 语言的发展简史1.1 1991年4月,Sun公司的James Gosling领导的绿色计划(Green Project)开始,原名为“Oak”1.2 到1994年,随着WWW(万维网)在的快速的发展,Sun公司于是将其用于Internet网络,并改名为Java。1.3 1995年正式发表了Java 1.01.4 1998年JDK1.2 ,后称Java21.5 2

2014-05-18 10:34:04 489

转载 2. 计算机语言的发展过程

2. 计算机语言的发展过程第一代计算机语言          机器语言第二代计算机语言          汇编语言第三代计算机语言          高级语言          面向过程的                   c、pascal、fortran等          面向对象(OOP)                   c++、Java、c#

2014-05-18 10:32:41 586

转载 1. 序言

1. 序言1.1 关于Java我们必须知道的几件事Java 语言的前身Sun公司,现在被Oracle收购sun的全称是:Stanford University NetworkJava语言飘香的咖啡Java之父James GoslingJava 语言霸主的地位

2014-05-18 10:14:41 347

转载 4. 声明符

4. 声明符声明符有简单的变量标示符、数组([]结尾)、指针(*打头)和函数(()结尾)。该博客教程视频地址:http://geek99.com/node/1036#原文出处:

2014-05-14 11:37:51 487

转载 3. 类型限定符

3. 类型限定符类型限定符有const和volatile,const声明的变量不能被修改,volatile大部分用在底层编程中,例如嵌入式程序中。

2014-05-14 11:36:34 419

转载 2. 存储类型

2. 存储类型存储类型有4个 auto、static、extern和register,这4个都可以放在变量前面,放在函数前面的只有两个extern和static2.1 变量的特性每个变量都有3方面特性:存储期限,变量的存储期限决定了变量在内存中存在的时间,自动存储期限的变量在所属块程序被执行时分配内存,在离开是释放内存,这一般是代码块或函数内部的变量及函数的参数。静态存储期限的变量

2014-05-14 11:35:14 385

转载 1. 声明的语法

1. 声明的语法声明的语法格式是:声明说明符 声明符 例如:extern const unsigned long int a[10]; 前面部分extern const unsigned long int为声明说明符 后面a[]为声明符声明说明符分为三类:存储类型:4个 auto、static、extern和register类型限定符:两个const和volatile类型说

2014-05-14 11:06:06 453

转载 3. 构建多文件程序

3. 构建多文件程序案例-在线电子商务 在这个案例中我们有四个模块:商品、客户、订单和购物车,我们将根据这些模块来定义不同的头文件和源文件。商品的头文件和源文件:product.h #ifndef C_15_01_product_h#define C_15_01_product_h// 设置商品编号void setpid(int pid);// 获得商品

2014-05-14 10:38:10 428

转载 2. 头文件

2. 头文件2.1 使用头文件共享宏定义和类型定义 我们一般将程序中使用到的宏定义和类型定义,写在头文件中,使用时直接包含头文件即可。例如,可以定义一个global.h 头文件,在其中定义一些全局宏定义和类型定义。#ifndef C_15_01_global_h#define C_15_01_global_h#define TRUE 1#define FALSE 0

2014-05-14 10:19:15 460

转载 1. 头文件简介

1. 头文件简介1.1 到目前为止,我们所写的程序都在一个源文件main.c中,但是实际项目当中可能有成千上万个源文件。我们可以想象一下如果开源Linux操作系统中只有一个main.c源文件该如何实现。大型项目中将会按照不同的模块分为多个源文件,例如做一个在线电子商务项目,可以有客户、订单、商品、购物车等模块,那么,就可以按照这些模块定义不同的源文件。 1.2 将程序按照模块定义在

2014-05-14 10:06:51 495

转载 5. 构建C程序

5. 构建C程序C程序的结构如下:#include#define类型定义外部变量函数声明main函数函数定义例如:/*文件包含指令*/#include /*宏定义*/#define TRUE 1#define FALSE 0/*类型定义*/typedef int Bool;/* 外部变量*/int global = 100;

2014-05-14 09:09:52 412

转载 4. 作用域

4. 作用域在C程序中同一个标示符可以重复出现,并且根据出现的位置具有不同的意义。例如,下列代码,变量i重复出现多次,但是意义各部相同。/*全局变量,静态存储期限、文件作用域*/int i;/*形参,自动存储期限、程序块作用域*/void f(int i){    i = 1;}void g(void){    /*局部变量,自动存储期限、程序块作用域*/ 

2014-05-13 15:23:02 321

转载 3. 程序块

3. 程序块程序块是大括号包含起来的部分{}。函数体内的多条语句构成程序块,程序块也可以是条件语句或循环语句中的多条语句。在程序块中的变量具有自动存储期限,和程序块作用域。该博客教程视频地址:

2014-05-13 15:19:06 480

转载 2. 外部变量

2. 外部变量函数直接可以通过参数传递的方式来通信,可以可以通过外部变量的方式来通信。外部变量,也称为全局变量,是定义在函数外部的变量。外部变量具有静态存储期限和文件作用域。在程序运行期间,保存在外部变量的值将一直存在。在整个文件中的各个函数都可以访问外部变量。/* 全局变量*/int global = 100; /* 读 */void read(){ 

2014-05-13 15:13:12 351

转载 1. 局部变量

1. 局部变量在函数体内,或者是形参都是局部变量。局部变量具有自动存储期限和块作用域。#include /* 交换连个数 */void swap(int a,int b){    printf("a=%d,b=%d\n",a,b);    int tmp;    tmp = a;    a = b;    b = tmp;    printf("a=%d

2014-05-13 15:00:55 334

转载 3. 枚举

3. 枚举枚举(enumeration),也称为枚举常量,允许程序员定义一组有关联关系的常量。例如,程序中要定义三种颜色常量:红色(RED)、绿色(GREEN)、蓝色(BLUE)。或者在游戏中定义玩家操作游戏的四个方向上(UP)、下(DOWN)、左(LEFT)、右(RIGHT)。enum color {    RED = 1,    GREEN = 2,    BLUE = 3

2014-05-13 14:57:45 511

转载 2. 联合

2. 联合和结构一样,联合(union)也可以有一个或多个成员,每个成员的类型也可以不相同。但是,编译器只为联合中最大的成员分配足够的内存空间。联合成员在这个空间中彼此覆盖。联合的定义和结构类似:union datetype {    int i;    float f;    double d;};测试代码:union datetype dt;dt.i =

2014-05-13 14:34:16 392

转载 1. 结构

1. 结构1.1 结构特性结构是一种复合类型,和之前的数组类似。不同的是数组中的数据类型相同,而结构中的数据可以不同。正是因为数组中保存的数据相同,所以可以通过下标(索引)来访问,而结构则不能通过索引来访问。1.2 结构变量的声明结构可以把相关联的变量保存在一起,这样会很方便。例如,我们可以把一个人的信息定义在一个结构中,这些信息可能有姓名、年龄、性别、住址等。结构中的变量成为结构

2014-05-13 14:18:12 427

转载 4. 条件编译

4. 条件编译4.1 #if #endif#if #endif 会根据#if后面的条件来判定是否执行#if #endif直接的代码,例如:#define DEBUG   1void test6(){#if DEBUG    printf("打印调试信息1\n");    printf("打印调试信息2\n");#endif}4.2 #ifdef #ifnde

2014-05-13 13:55:37 358

转载 3. 宏定义

3. 宏定义3.1 宏定义的格式:#define 标示符 替换列表3.2 常见错误:#define N=10 /* 错误使用了等号(=)*/#define N 10; /*错误使用了分号(;)*/3.3 使用宏定义的优点:3.3.1 程序可读性更强,例如:在程序中使用AGE,比使用20,可读性更强。3.3.2 程序修改方便,程序中如果有100个地方使用了宏定义,我们只修

2014-05-13 13:54:36 671

转载 2. 预处理指令

2. 预处理指令2.1 宏定义。#define指令定义一个宏,#undef指令删除一个宏2.2 文件包含。#include指令将包含当前文件到程序中。2.3 条件编译。#if、#ifdef、#ifndef、#elif、#else和#endif,将根据条件包含代码块到程序当中,或将代码块排除在程序外。预定义指令的规则:1. 指令以#号打头,并且不是必须定义在程序开始位置(虽然都这

2014-05-13 13:52:00 581 1

转载 1. 预处理的工作原理

1. 预处理的工作原理预处理器可以在编译器对C程序编译之前,进行重新编辑(修改源代码)工作。这个过程包括:1.1 将使用#define指令进行的宏定义进行匹配替换1.2 将使用#include指令包含的头文件添加到当前文件中1.3 将预定义指令删除1.4 删除注释1.5 可以使用gcc –E Hello.c 查看预编译器的输出结果,例如下面程序的输出结果将包含stdio

2014-05-13 13:50:54 1634

转载 5. 使用字符串库函数

5.  使用字符串库函数5.1 计算字符串长度,函数原型如下:size_t strlen(const char *s);size_t 是一个无符号整型 unsigned int该函数返回第一个空字符\0前面的字符个数。#include // 获得字符串长度void test_strlen(){            char str[] = "Hello World

2014-05-13 13:49:49 388

转载 4. 字符串的读写

4. 字符串的读写4.1 可以使用printf和puts来输出一个字符串,printf提供了格式化输出,可以使用%s来输出一个字符串,还可以使用 %.ps 来输出字符串的一部分,p表示字符串的个数。puts只提供一个字符串参数,可以自动换行。// 使用prinf和puts写字符串void test5(){            char str[] = "Hello World!"

2014-05-13 13:28:16 365

转载 3. 字符数组和字符指针

3. 字符数组和字符指针3.1 看下面两个声明char *str = "Hello World!";char str1[] = "Hello World!";3.2 字符数组和字符指针的区别1. 字符数组和任何其他数组一样,数组元素可以被修改,而字符指针保存的是字符串字面量,不能被修改。2. 声明为字符数组时str1为数组名称,而声明为字符指针时str为指针变量,可以被重新

2014-05-13 12:10:17 370

转载 2. 字符串变量

2. 字符串变量2.1 C语言使用字符数组保存字符串变量,最后以一个空字符’\0’结尾,注意:空字符’\0’和字符’0’的区别,空字符的ASCII值为0.2.2 假设字符串中要保存10个字符,那么我们应该设置字符数组的长度为11,因为,最后一个表示字符串的结束。#define STR_LEN 10 char str[STR_LEN+1];2.3 字符串变量的初始化#includ

2014-05-13 11:34:23 405

转载 1. 字符串字面量

1. 字符串字面量1.1 字符串字面量是指使用双引号“”括起来的的字符序列,例如:“Hello World”。1.2 在C语言中,把字符串当做字符数组来处理,当遇到长度为n的字符串时,程序分配长度为n+1的数组来保存,最后一个字符表示字符串的结束’\0’.1.3 根据我们知道的数组和指针的关系,可以使用字符指针来保存字符串常量,例如: char *c ;c = “Hello world

2014-05-13 11:33:11 529

转载 6. 函数指针

6. 函数指针#include #include #include void f(int);void (*fp)(int);int main(void){            f(100);            fp = &f;            fp = f;            (*fp)(200);            fp(300

2014-05-13 11:23:39 380

转载 5. 链表

5. 链表5.1 链表是由一连串节点组成的,其中每个节点都包含指向下一个节点的指针。struct node{            int value;            struct node *next;};5.2 添加链表节点struct node *first = NULL;struct node *new_node = malloc(sizeof(st

2014-05-13 11:21:22 375

转载 4. 释放内存

4. 释放内存4.1 malloc等内存分配函数分配的内存,会在内存堆里面,如果一直分配就会造成内存耗尽的危险。4.2 分配的内存不再使用需要手动释放,释放函数是void free(void *ptr);            int *a,*b;            a = malloc(5);            b = malloc(6);           

2014-05-13 11:13:08 302

转载 3. 动态分配数组

3. 动态分配数组3.1 当编程时很难为数组估计大小,可以在运行程序时,动态为程序分配大小。3.2 动态分配数组大小和分配字符串大小相似,可以使用sizeof来计算数据类型占用的字节数,再来分配,例如:int *a = malloc(n*sizeof(int));3.3 可以使用 calloc来分配内存大小,calloc可以对分配的内存进行初始化。calloc的函数原型为:void

2014-05-13 11:07:15 1158

转载 2. 动态分配字符串

2. 动态分配字符串2.1 malloc函数原型,void *malloc(size_t size); size_t 是一个无符号整型。2.2 C中的字符占用一个字节大小,为n个大小的字符串分配空间,可以使用 malloc(n+1)来分配。多出的一个字节保存字符串结束符‘\0’。2.3 自定义字符串连接函数char *concat(const char *s1,const char

2014-05-13 10:26:03 544

转载 1. 动态内存分配

1. 动态内存分配1.1 C语言的数据结构,通常都是固定大小的,比如:数组有固定的大小,而每个元素也有固定的长度。这样对程序有一定限制,例如:我们要使用数组来保存一个班级的学生信息,数组的长度指定多大合适呢?太大浪费空间,太小不够用。这时候就会用到内存的动态分配。1.2 内存分配函数malloc函数,分配内存,但是不对内存进行初始化。calloc函数,分配内存,并且对内存进

2014-05-13 09:45:16 405

转载 2. 使用指针操作数组

2. 使用指针操作数组2.1 可以使用数组名作为数组第一个元素的指针。2.2 实例#include void test_pointer1(){            int a[] = {1,2,3,4};            // a 表示数组第一个元素的地址            printf("a=%p\n",a);            int *p =

2014-05-12 11:05:55 467

转载 1. 指针的算术运算

1. 指针的算术运算1.1 指针不仅可以指向普通的变量,还可以指向数组元素。例如:int a[10],*p;p = &a[0];1.2 指针指向数组元素后,可以通过访问指针来访问数组。例如:int a[10],*p;p = &a[0];*p = 10;printf("a[0]=%d",a[0]);1.3 指针指向数组元素后,可以对指针进行一些算术运算。1.3

2014-05-12 11:04:07 543

转载 3. 指针的赋值

3. 指针的赋值3.1 指针的赋值是变量地址的赋值3.2 实例#include void test_pointer(){            int i,*p,*q;            p = &i;            // 地址传递            q = p;            *p = 100;            printf(

2014-05-12 11:00:04 473

空空如也

空空如也

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

TA关注的人

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