- 博客(63)
- 收藏
- 关注
原创 蓝桥--在线评测--入门训练
问题描述输入A、B,输出A+B。说明:在“问题描述”这部分,会给出试题的意思,以及所要求的目标。输入格式输入的第一行包括两个整数,由空格分隔,分别表示A、B。说明:“输入格式”是描述在测试你的程序时,所给的输入一定满足的格式。做题时你应该假设所给的输入是一定满足输入格式的要求的,所以你不需要对输入的格式进行检查。多余的格式检查可能会适得其反,
2016-01-14 17:19:22
645
原创 【C语言提高52】链表的基本操作
typedef struct Node{ int data; struct Node*next;}SLIST;//创建链表 返回头结点SLIST*SList_Creat(); //创建链表//顺序访问链表中各结点的数据域int SList_Print(SLIST*pHead); //遍历链表//在单向链表中插入节点int SList_NodeInsert(S
2016-01-13 15:20:40
642
原创 【C语言提高51】链表基本概念与静态链表
链表是一种物理存储单元上非连续的存储结构,由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成,节点与节点之间通过指针链接。每个结点包括两个部分:一部分是存储数据元素的数据域,另一部分是存储下一个结点地址的指针域。链表是一种物理存储单元上非连续的存储结构,由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成,节点与节点之间通过指针链接
2016-01-13 14:54:19
1043
原创 【C语言提高50】Win32环境下动态链接库(DLL)编程原理
比较大的应用程序都由很多模块组成,这些模块分别完成相对独立的功能,它们彼此协作来完成整个软件系统的工作。其中可能存在一些模块的功能较为通用,在构造其它软件系统时仍会被使用。在构造软件系统时,如果将所有模块的源代码都静态编译到整个应用程序EXE文件中,会产生一些问题:一个缺点是增加了应用程序的大小,它会占用更多的磁盘空间,程序运行时也会消耗较大的内存空间,造成系统资源的浪费;另一个缺点是,在编写大的
2016-01-13 14:28:19
1181
原创 【C++基础07】引用函数返回值(引用当左值)
C++引用使用时的难点:当函数返回值为引用时若返回栈变量不能成为其它引用的初始值不能作为左值使用若返回静态变量或全局变量可以成为其他引用的初始值即可作为右值使用,也可作为左值使用栈变量做返回值:int getA1(){ int a = 10; return a;}//若返回栈变量 不能成为其他引用变量的初始值// 返回a
2016-01-13 10:44:38
1444
原创 【C++基础06】引用本质的探究
void main(){ //const int c1; 报错 因为常量必须初始化 int a = 10; int &b = a; //一般引用 的声明也必须 初始化 所以很像一个常量 //两者打印出来的地址是一样的 ==》说明a和b都是同一块内存空间的别名 门牌号 printf("%d",&a); printf("%d", &b); cout << "hello!"
2016-01-13 10:35:14
372
原创 【C++基础05】引用的基础
变量名实质上是一段连续存储空间的别名,是一个标号(门牌号) 程序中通过变量来申请并命名内存空间 通过变量的名字可以使用存储空间属于c++编译器对c的扩展 不能用c编译器的角度思考引用void main(){ int a = 10; //引用的语法:Type&name=var; //b就是a 写b就相当于写a int&b = a; //int
2016-01-13 10:27:00
328
原创 【C++基础04】C/C++中的const
1 const基础知识(用法、含义、好处):int main(){const int a;int const b;const int *c; //指向可以被改 数据不可以int * const d;//指向不能被改 数据可以const int * const e ;return 0;}Int func1(const )初级理解:const是定义常量==》const意味
2016-01-13 09:50:31
400
原创 【C语言提高49】按照块读写文件
块方式: 直接把内存数据 写入到文件中typedef struct Teacher{ char name[64]; int age;}Teacher;读:void main_fread(){ int i = 0; int myN; FILE*fp = NULL; char*fileName = "D:/3.data"; Teacher tArray[3];
2016-01-10 13:04:29
493
原创 【C语言提高48】按照行读写文件
3 内存打包技术(把内存首地址+内存的长度)按照行读:void main02_gets()//读{ //句柄就是一个内存块的首地址 或者是一个资源的首地址 int i = 0; FILE*fp = NULL;//文件句柄 //char*filename = "c:\\1.txt";//windows下 char*filename2 = "D:/2.txt
2016-01-10 13:03:30
655
原创 【C语言提高47】按照字符读写文件
char*filename = "C:\\1.txt"; //windows下char*filename2 = "D:/2.txt"; //windows和linux下 句柄就是一个内存块的首地址 或者是一个资源的首地址按字符读:void main02_fgetc()//读{ int i = 0; FILE*fp = NULL;//文件句柄 char
2016-01-10 12:59:34
328
原创 【C语言提高46】【文件操作API】----- 非标准文件的读写
1.文件的打开和关闭:int open(char*filename, int access);该函数表示按access的要求打开名为filename的文件,返回值为文件描述字,中access有两部分内容:基本模式和修饰符, 两者用" "("或")方式连接。修饰符可以有多个, 但基本模式只能有一个access的规定-----------------
2016-01-10 12:33:19
617
原创 【C语言提高45】【文件操作API】----- 标准文件的读写
1.文件的打开fopen() :文件的打开操作表示将给用户指定的文件在内存分配一个FILE结构区,并将该结构的指针返回给用户程序,以后用户程序就可用此FILE指针来实现对指定文件的存取操作了。当使用打开函数时,必须给出文件名、文件操作方式(读、写或读写),如果该文件名不存在,就意味着建立(只对写文件而言,对读文件则出错),并将文件指针指向文件开头。若已有一个同名文件存在,则删除该文件,若无
2016-01-10 11:46:46
1345
原创 【C语言提高44】【文件操作API】------文件api的分类
01)文件读写api fgetc fputc 按照字符读写文件 fputs fgets 按照行读写文件 (读写配置文件) fread fwirte 按照块读写文件 (大数据块迁移) fprintf
2016-01-10 11:45:09
478
原创 【C语言提高43】c语言文件读写概念
文件分类:v 按文件的逻辑结构: l 记录文件:由具有一定结构的记录组成(定长和不定长) l 流式文件:由一个个字符(字节)数据顺序组成v 按存储介质:l 普通文件:存储介质文件(磁盘、磁带等)l 设备文件:非存储介质(键盘、显示器、打印机等)v 按数据的组织形式:l 文本文件: ASCII文件,每个字节存放一个字符的ASCII码l
2016-01-10 11:19:52
520
原创 【C语言提高42】结构体的高级话题:偏移量
结构体中的偏移量是指:结构体中元素地址相对于大结构体起始地址的偏移大小定义如下一个结构体:typedef struct AdvTeacher{ char name[64]; //64字节 t1.age 相对结构体的偏移量是64 int age; //4 int p; //4 t1.p 相对结构体偏移量是68
2016-01-09 10:50:11
706
原创 【C语言提高41】结构体的浅copy和深copy
编译器的=操作 只会把指针变量值 从from拷贝到to 但不会把指针变量所指的内存空间的拷贝过去 //浅拷贝 void copyTeacher(Teacher*to,Teacher*from){ //*to=*from; memcpy(to,from,sizeof(Teacher));}浅考本出现在结构体中套一个一级指针或者是二级指针如果想执行深c
2016-01-09 10:39:54
378
原创 【C语言提高40】结构体套一级指针和二级指针
//结构体数组 3 输入老师年龄 排序#include#include#include#includetypedef struct teacher{ char name[64]; char*alisname; //分配了四个字节的内存 需要显式的分配内存 char**sName; int age; int id;}teacher;void printfT
2016-01-07 01:01:30
1139
原创 【C语言提高38】结构体套一级指针
//结构体数组 3 输入老师年龄 排序#include#include#include#includetypedef struct teacher{ char name[64]; char*alisname; //分配了四个字节的内存 需要显式的分配内存 嵌套套一级指针 int age; int id;}teacher;void printfTeacher
2016-01-07 00:59:43
361
原创 【C语言提高37】结构体做函数参数进阶
在堆上分配内存 并用二级指针做输出://结构体数组 3 输入老师年龄 排序#include#include#include#includetypedef struct teacher{ char name[64]; int age; int id;}teacher;void printfTeacher(teacher*array, int num){ i
2016-01-07 00:33:29
686
原创 【C语言提高37】结构体元素做函数参数与结构指针做函数参数
结构体元素做函数参数:结构体元素做参数 形参只能复制实参的值 并不能得到实参的地址 所以实参根本还没有任何变化void copyTeacher(Teacher to,Teacher from){ to = from;}void main(){ Teacher t1 = {"aaa",32,02}; Teacher t2; memset(&t2,0,sizeof
2016-01-06 12:48:07
807
原创 【C语言提高36】结构体类型和变量定义及基本操作
定义一个结构体类型://定义了一个数据类型 这个数据类型叫struct Teacher //固定内存块大小的别名 使用该数据类型的时候才会分配内存struct Teacher {char name[64];int age;int id;};//类型的重定义typedef struct teacher{char name[64];
2016-01-05 23:43:02
492
原创 【C语言提高35】数组指针和指针数组
指针 数组 每一个元素都是一个指针类型好比 int 数组 每一个元素都是int类型char* char*Myarray[] = {"111","3333","aaaa"};char*型的数组 每一个元素都是char*的指针 元素名Myarray[0] 指向"111"这块内存空间数组 指针 用一个指针来指向数组 数组的指针 某某的指
2015-12-17 00:54:57
583
原创 【C语言提高34】数组指针变量的定义
方法1: 用数组类型 *: void main(){ typedef int(MyArrayType)[5]; //本身相当于一级指针 数组嘛 给5个int的内存 起了一个MyArrayType的别名 int[5]本身就是一种数据类型 int i = 0; //MyArrayType myArray;// 等价于 int myArray[5]; //用类型定义变量
2015-12-17 00:40:42
417
原创 【C语言提高33】数组指针类型定义
数组指针用于指向一个数组int a[10]数组名是数组首元素的起始地址,但并不是数组的起始地址通过将取地址符&作用于数组名可以得到整个数组的起始地址定义数组指针 有两种:1)通过数组类型定义数组指针: typedef int(ArrayType)[5]; // 给int[5]类型起了一个别名叫ArrayTypeArrayType* point
2015-12-17 00:17:02
291
原创 【C语言提高32】数组类型
数组类型:C语言中的数组有自己特定的类型 数组的类型由元素类型和数组大小共同决定例:int array[5]的类型为int[5]定义数组类型: void main(){int i = 0;//声明一个数组类型typedef int(MyArray)[5]; //定义了一个数据类型 数组数据类型MyArray myArray;
2015-12-16 23:49:12
304
原创 【C语言提高31】数组基础概念
概念1)元素类型角度:数组是相同类型的变量的有序集合测试指针变量占有内存空间大小2)内存角度:联系的一大片内存空间 数组初始化://数组元素的个数可以显示或隐式指定//分析数组初始化{0}与memset比较int main(){ int i = 0; int a[10] = {1,2}; //其他初始化为
2015-12-16 23:21:10
336
原创 【C++基础03】C++对C的加强
“实用性”增加:C语言中的变量都必须在作用域开始的位置定义!!C++中更强调语言的“实用性”,所有的变量都可以在需要使用时再定义。register关键字增强:register关键字 请求编译器让变量a直接放在寄存器里面,速度快在c语言中 register修饰的变量 不能取地址,但是在c++里面做了内容1register关键字的变化register关键
2015-12-16 19:24:50
296
原创 【C++基础02】类中不写成员函数易犯错误模型
这个代码在vs10中编译不通过 vs13中编译通过执行乱码:class MyCircle{public: double r; double pi=3.14; double area = pi*r*r;};void main(){ MyCircle c1; //此时 r area = pi*r*r;中的r都是随机分配 area = pi*r*r;在声明的
2015-12-16 14:10:36
342
原创 【C++基础01】用面向过程和面向对象方法求解圆形面积
1 面向过程:void main(){ double r=0; double s = 0; cout << "请输入圆的半径:"; cin >> r; cout << "r的值是:" << r << endl; s = 3.14*r*r; cout << "圆的面积是:" << s << endl; system("pause"); return;}2 面向对
2015-12-16 13:45:04
748
原创 【C语言提高30】二级指针强化训练[02]
#include#include#include#include//主调函数分配内存 char** spitString3(char*buf1, char c, int*count){ //strcpy(buf2[0], "aaaaa"); //strcpy(buf2[1], "bbbbbb"); char *p = NULL, *pTmp = NULL
2015-12-06 23:40:52
564
原创 【C语言提高30】二级指针强化训练
#include#include#include#include//主调函数分配内存int spitString2(char*buf1, char c, char**myp/*in*/, int*count){ //strcpy(buf2[0], "aaaaa"); //strcpy(buf2[1], "bbbbbb"); char *p = NULL, *pTmp = NUL
2015-12-06 23:39:20
594
原创 【C语言提高29】两个辅助指针变量挖字符串
#include#include#include#includeint spitString(char*buf1,char c,char buf2[10][30],int*count){ //strcpy(buf2[0], "aaaaa"); //strcpy(buf2[1], "bbbbbb"); char *p = NULL, *pTmp = NULL; int tmpco
2015-12-06 19:57:03
636
原创 【C语言提高28】多级指针
#include#include#include#include//产生molloc内存char**getMem61(int num){ int i = 0, j = 0; char** p2 = NULL; if (p2 == NULL) { return NULL; } p2 = (char**)malloc(sizeof(char*)*num); for
2015-12-06 11:04:03
285
原创 【C语言提高27】二级指针三种内存模型总述
//二级指针三种内存模型void main51(){ int i = 0; //01指针数组 char* p1[] = {"123","456","789"}; //02二维数组 char p2[3][4] = { "123", "456", "789" }; //03手工二维内存 char **p3 = (char**)malloc(sizeof(char*
2015-12-06 11:01:50
408
原创 【C语言提高26】二级指针做输入的第三种内存模型:手工打造二维内存
打印 排序://自己打造内存空间void main(){ int i = 0,j=0; char** p2 = NULL; char*tmp; char tmpbuf[100]; int num = 5; p2 = (char**)malloc(sizeof(char*)*num); for (i = 0; i < num;i++) { p2[i] = (char*)
2015-12-06 10:57:15
499
原创 【C语言提高25】二级指针做输入的第二种内存模型:二维数组
打印 排序:void main(){ int i = 0,j=0; int num = 4; char tmpbuf[30] = {0}; char myBuf[30] = {0}; char myArray[10][30] = { "aaaaaa", "ccccc", "bbbbb", "1111111" }; //打印 for (i = 0; i < num; i++
2015-12-06 10:25:50
440
原创 【C语言提高24】二级指针做输入的第一种内存模型:数组指针
打印排序:#include#include#include#includevoid main(){ int i = 0, j = 0; int num = 0; char*tmp = NULL; //数组 只不过每一个元素都是指针--->指针数组 char* myArray[] = {"aaaaaa","ccccc","bbbbb","1111111"}; //打印
2015-12-04 18:24:32
636
原创 【C语言提高23】二级指针做输出的内存模型
//指针做输出 被调函数分配内存 //指针做输入 主调函数分配内存二级指针做输出模型#include#include#include#includeint getMem(char** myp1/*out*/, int*mylen1/*in*/, char**myp2/*out*/, int*mylen2/*in*/){ char*tmp1 = NULL; tmp
2015-12-04 18:19:57
560
原创 【C语言提高22】const专题
int main(){const int a; //int const b; const char *c;char * const d; char buf[100]const char * const e ;return 0;}初级理解:const是定义常量==》const意味着只读含义://第一个第二个意思一样代表一个常整形数//第三个 c是一个指向常整
2015-12-03 23:14:57
323
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人