- 博客(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 967
转载 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 348
转载 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关注的人