20160207.CCPP体系详解(0017天)】的更多相关文章

程序片段:01.Point.c+02.进程.c+03.内存的栈和堆.c 内容概要:内存32位和64位的区别 ///01.Point.c #include <stdio.h> #include <stdlib.h> //01.指针变量所占用的内存尺寸由编译器进行直接决定 // 指针变量所占用的内存尺寸同时直接或间接与CPU-->操作系统-->编译器平台有关 // 综合决定:CPU-->操作系统-->编译器平台 // 直接决定:编译器平台 //02.指针变量当中…
程序片段(01):函数.c+call.c+测试.cpp 内容概要:函数 ///函数.c #include <stdio.h> #include <stdlib.h> //01.函数: // 1.函数的作用:重用代码,重用功能 // 表象:代码的封装,代码的重用 // 实质:功能的封装,功能的重用 int main01(void) { system("tasklist"); system("pause"); } //02.函数的声明与定义浅析:…
程序片段(01):01.多线程.c+02.多线程操作.c 内容概要:多线程 ///01.多线程.c #include <stdio.h> #include <stdlib.h> #include <Windows.h> #include <process.h> //01.线程任务函数剖析: // 1."封装"线程任务代码 // 2.MessageBox();作用: // 用于"阻塞"当前线程的继续执行状态 // 也就是…
程序片段(01):main.c 内容概要:PointWithOutInit #include <stdio.h> #include <stdlib.h> //01.野指针详解: // 1.野指针:没有进行初始化操作的指针-->由于该指针变量内部所存储的地址是个随机值,因此是野地址(类型含义:指针) // 注:指针类型的变量必须在其被创建的时候就需要进行初始化操作,否则就成了野指针,所谓野指针就是乱指向的指针,形成的就是一个随机垃圾地址 // 2.胡乱使用野指针所造成的现象:…
代码片段(01):.指针.c+02.间接赋值.c 内容概要:内存 ///01.指针 #include <stdio.h> #include <stdlib.h> //01.取地址操作符(&)详解: // 1.操作对象:变量名(实质:内存实体|数据实体) // 2.操作特点:属于寄存器操作(操作结果不是内存实体) // (1).取地址操作(&变量名)是在CPU的寄存器区域所完成的操作; // (2).地址数据不占用内存,内存地址是在CPU核心构成组件寄存器产生的, /…
程序片段(01):01.杨辉三角.c 内容概要:杨辉三角 #include <stdio.h> #include <stdlib.h> #define N 10 //01.杨辉三角: // 1.图形转换:将标准杨辉三角采用标准数组进行模拟 // 2.确定标准数组的图形描述关系: // (1).数组当中第一列的所有元素以及正对角线的所有元素都为1 // (2).数组当中的其它元素等于上一行左一列 // 3.数组模拟杨辉三角的诀窍! // 将整个杨辉三角向左倾斜成为标准的二维数组 in…
程序片段(01):define.h+data.h&data.c+control.h&control.c+view.h&view.c+AI.h&AI.c+main.c 内容概要:迷宫游戏 ///define.h //通用工具 #include <stdio.h> #include <stdlib.h> #define N 10 ///data.h //迷宫布局 #include "define.h"//对外声明全局变量 extern…
程序片段(01):数组.c+02.数组初始化语法.c 内容概要:数组 ///01.数组.c #include <stdio.h> #include <stdlib.h> //01.采用容器结构存储数据的要点: // 1.必须为每个数据分配独立的存储空间 // 2.必须为每个数据分配独立的标识符(变量名称) //02.C语言之C99语法的特点: // 针对于VC编译器: // 1.VC编译器分配数组的时候必须静态分配 // 静态分配:在编译时期确定数组所占据的内存尺寸(字节数)大小…
以下内容有所摘取,进行了某些整理和补充 论浮点数的存储原理:float浮点数与double浮点数的二进制存储原理–>阶码 浮点数转二进制 1.整数int类型和浮点数float类型都是占用4个字节,在计算机中有32位来进行表示,那为什么什么float的范围大于int? 答:因为两者的存储原理一样,虽然该同样是采用二进制的方式进行存储,但是整数类型(int)采用的是补码方式进行存储,但是浮点类型(float)采用的是阶码方式存储.由于阶码内部的存储原理和指数相关,所以采用同样大小的二进制码可以表示更…
程序片段(01):msg.c 内容概要:线程概念 #include <stdio.h> #include <stdlib.h> #include <Windows.h> #include <process.h>//线程函数头文件声明 //01.编程当中所涉及到的重要概念: // 进程-->线程-->模块儿-->动态库(Dll)-->静态库Lib) //02.此单线程程序剖析: // 1.main01这个函数作为主函数而言: // 就是…
程序片段(01):TestCmd.c 内容概要:管道_字符串 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> //01.管道:Windows应用程序与DOS系统之间的通信桥梁 // 1.用于进程之间的通信(两个进程:窗体进程+cmd进程) // 2.窗体进程发送指令到cmd进程进行执行; // 然后将cmd进程执行之后的结果反馈到当前窗体…
程序片段(01):CGI.c 内容概要:CGI-cloud #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main01(void) { printf("Content-Type:text/html \n\n"); printf("周瑞富很富,吴伟很帅,刘海华很高!并称高富帅! <br />"); printf("周瑞富很富,吴伟很帅,刘海华很高!并称高富帅! <b…
程序片段(01):01.二维数组.c 内容概要:二维数组 #include <stdio.h> #include <stdlib.h> //01.关于栈内存开辟数组: // 诀窍:将所有维度的数组看做为一维数组, // 然后再采用指向该数组当中首个元素的指针(变量|常量) // 秘诀:原始数组数组名称替换法: // 就可以直接得到指向数组的指针(将数组名称-->替换为-->(*pArr)) // 特点:指针变量可以不用最高维度, // 但是类型转换必须加上表示最高维度的…
内容概要:C语言控制语句题库.doc 第三章 控制语句 一.选择题 1. 以下语句中无限循环语句是[B]. A)for(;2&5;); B)while(1,2,3); -> while(3) C)while('\0'); D)for(;'\0';); 解析过程: A选项: 010 101 B选项: While(3); C,D选项: '0' '\0' 0 %d:48 0 0 %c:0 NUT NUT(不可见字符) 2. 若有程序段如下: a=b=c=0;x=35; if(!a)x--; if(…
内容概要:C语言基本数据类型及运算题库(含答案) 第二章 基本数据类型及运算 一.选择题 1. 若以下选项中的变量已正确定义,则正确的赋值语句是[C]. A) x1=26.8%3; B) 1+2=x2; C) x3=0x12; D) x4=1+2=3; 2. 设变量x为float型且已经赋值,则以下语句中能够将x中的数值保留到小数点后面两位,并将第三位四舍五入的是[C]. A) x=x*100+0.5/100.0 B) x=(x*100+0.5)/100.0 C) x=(int)(x*100+0…
程序片段(01):hanoi.c+汉诺塔.c 内容概要:汉诺塔 ///hanoi.c #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int main01(void) { //int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };//一维数组,代码块儿初始化方式(指定) //for (int i = 0; i < 10; i++) //{ // p…
程序片段(01):eatmem.c 内容概要:语句和逻辑结构 #include <stdio.h> #include <stdlib.h> #include <Windows.h> //01.杂乱知识点: // 1.内存分配函数malloc(); // (1).分配单位:字节 // (2).分配方式: // 鲸吞+慢咽 // 2.内存分配注意事项: // 32位的单个进程一口气对多开辟2G的内存 // 3.程序当中默认操作的数据最小单位 // 都是字节 // 4.软件存…
程序片段(01):对称.c 内容概要:对称 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> //01.对称原理: // 1.双索引or双指针-->双边对称夹逼-->进行字符比对 // 2.判断存在情况,默认所有情况 int isSemmetry(char * pStr) { char * p1 = pStr; char * p…
程序片段(01):Test.c+NewTest.c 内容概要:题目测试 ///Test.c #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> #define r char S; T R; I N, G, s #define A(P,O) for(P=O; *P; P=U(P)) typedef char T[128], *I, p[2400…
程序片段(01):01.一对一模式.c+02.中介者模式.c+03.广播模式.c 内容概要:事件 ///01.一对一模式.c #include <stdio.h> #include <stdlib.h> #include <Windows.h> //01.关于多线程: // (临界区+互斥量):线程冲突 // (事件):线程通信 // (时间):同步线程 HANDLE eventArrA[2] = { 0 }; HANDLE threadArrA[2] = { 0 };…
程序片段(01):CircleList.h+CircleList.c+main.c 内容概要:环形链表 ///CircleList.h #pragma once #include <stdio.h> typedef struct node { int data; struct node * pNext; }Node; void circleListTailInsertData(Node ** ppCircleList, int data); void circleListHeadInsertD…
程序片段(01):指针与结构体.c 内容概要:指针与结构体 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> //01.养成编写程序的良好习惯: // 1.模块儿化编程,先进行每个模块儿测试可靠性: // 模块儿化编程:将一个很大的项目分为多个模块儿进行分治处理,针对于每个模块儿进行分而治之 // 如同逐个针对于函数进行功能模块儿的处理,最…
程序片段(01):MyArray.h+MyArray.c+main.c 内容概要:数组库 ///MyArray.h #pragma once #define DT int//类型通用 typedef struct { DT * pStart;//起始地址 int len;//元素个数 int sortState;//排序状态(0无序+1有序) }Array; typedef struct { DT ** ppStart; int len; }ResArray; void initArray(Ar…
程序片段(01):宽字符.c+字符串与内存四区.c 内容概要:宽窄字符 ///宽字符.c #include <stdio.h> #include <stdlib.h> #include <locale.h> //01.宽字符的应用: // 1.宽字符用于国际化: // Unicode编码情况之下,需要启用宽字符编程 // 2.中文的高级处理: // 必须依赖于宽字符 // 3.宽窄字符的唯一不同特点: // 存储数据的盒子尺寸不一致(宽字符采用双字节存储,窄字符采用单字…
程序片段(01):01.结构体静态数组.c+02.结构体动态数组.c 内容概要:结构体数组 ///01.结构体静态数组.c #include <stdio.h> #include <stdlib.h> #include <string.h> //01.C语言的结构体特点: // 1.C语言要求结构体或者共用体至少得有一个成员 // 也就是说C语言并不允许空结构体或者空共用体的出现! // 2.严格区分采用结构体类型到底定义的是哪种具体变量: // 普通变量+指针变量+数…
程序片段(01):ReplaceAll.c 内容概要:ReplaceAll #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> //01.(删除+替换)所有指定字符串 // (双索引+双指针)-->(删除+替换)原理 // 注:增加(拓展)+删除(压缩)+修改(压缩|不变|拓展)+查询(不变) void replaceAll(char…
程序片段(01):加法.c 内容概要:字符串计算表达式 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> //01.去除空格: // 1.空格:空格+Tab键+类似符... // 2.双索引+双指针 // 变化快+变化慢:变化快覆盖变化慢 void removeBlankSpaceByIndex(char * pStr) {//双索引 int i = 0; int j = 0; //whil…
程序片段(01):01.MemCpy.c 内容概要:内存拷贝 #include <stdio.h> #include <stdlib.h> #include <memory.h> //memcpy: // 将内存数据按照字节数从一片儿内存拷贝到另一片儿内存 // 并返回拷贝成功之后的地址 void * memcpyByIndex(void * dest, const char * src, unsigned int size) { if (NULL == dest ||…
程序片段(01):01.Malloc.c 内容概要:Malloc拓展 #include <stdio.h> #include <stdlib.h> //01.内存伸缩函数: // void * realloc(void * block, unsigned int size); // 用途:用于内存节省,动态根据所需内存尺寸进行内存开辟! // 说明:返回值+参数 // 参数(block):原始内存块儿的内存起始地址! // 参数(size):经过内存字节伸缩之后所占用的总内存字节尺…
程序片段(01):全排列.c 内容概要:全排列密码库 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> //01.对于字符类型的数组进行初始化特点: // 如果赋予的数据是字符串,则可以省略掉大括号 //注:性能+最优 int main01(void) { char arr[10] = "11111"; for (char * p = arr; 0 != *p; ++p)…