C基础
文章平均质量分 56
徐小hi
爱笑,性格开朗的人
展开
-
vs下抓取屏幕选定部分的图片 并保存
HBITMAP CopyScreenToBitmap(LPRECT lpRect) //lpRect 代表选定区域{ HDC hScrDC, hMemDC; // 屏幕和内存设备描述表 HBITMAP hBitmap,hOldBitmap; // 位图句柄 int nX, nY, nX2, nY2; //原创 2016-04-19 11:33:33 · 882 阅读 · 0 评论 -
strcop(),strcmp(),strcat(),strstr(),strchr()实现
char* strcpy(char* des,const char* source) { char* r=des; assert((des != NULL) && (source != NULL)); while((*des++ = *source++)!='\0'); return r; }int strcmp(const char *str1,const原创 2016-03-14 14:56:32 · 1699 阅读 · 1 评论 -
IO五种模型
首先我们看看IO的五种模型:同步和异步仅仅是关于所关注的消息如何通知的机制,而不是处理消息的机制.也就是说:同步的情况下,是由处理消息者自己去等待消息是否被触发异步的情况下是由触发机制来通知处理消息者一般来说,程序进行输入操作有两步:1.等待有数据可以读2.将数据从系统内核中拷贝到程序的数据区。对于socket编程来说:原创 2016-03-24 10:35:44 · 1141 阅读 · 1 评论 -
C++头文件的重定义问题以及头文件互相包含问题
在C++的头文件里,通常通过#pragma once与#ifndef两种防止头文件二次编译。 有的人将重复编译,重复包含与重复定义弄混,比如:定义一个类,在实例化它之前并不产生内存开销;这与基本类型有所区别。明明在头文件使用了#pragmaonce;#ifndef...#define...#endif,为什么在头文件定义了一个全局变量,还会出现重复定义的错误,为什么头文件里的类的定义原创 2016-03-10 16:04:14 · 4006 阅读 · 0 评论 -
C/C++内存存储
首先提到内存的存储,不得不说下变量的左值和右值:变量包含两个值:左值和右值。左值是内存存储区的名字,右值是存放存储区中的值。至于存储区,究竟是在哪,可分为以下几种: 1、栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 2、堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个原创 2016-02-25 14:26:56 · 540 阅读 · 0 评论 -
sizeof的理解
sizeof是返回变量声明后所占的内存数。对于一个指针而言,声明后,指针本身所占的内存就是4个字节,而声明一个数组的时候就创建了一个数组大小的内存。如:char *s = "dfsdfsd"; char ss[] = "asdf"; int a[10];int *aa;sizeof(s) = 4; s是个指针,指针声明后的地址为4个自己,而这个地址里面存的是后面字符转的地址原创 2016-03-04 13:46:03 · 398 阅读 · 0 评论 -
*p++和*++p
首先从运算符优先级的问题上看,后置++的优先级高于前置++和*,前置++和*处于同一优先级,遵从从右往左的结合性;然后在看前置++和后置++的返回值问题:++x 表达式的值是原值+1,返回自身引用,可以当做左值,x++ 表达式的值是原值,返回一个临时变量,不能当做左值。那么问题就好解决了:*p++: 等价于 *(p++), 指针++,整个表达式的值是p所指的位置的值,而不是p+原创 2016-02-02 16:10:27 · 854 阅读 · 0 评论 -
C语言建立动态数组
原文地址:C语言建立动态数组作者:zhliangC语言建立动态数组数组的有点在于随机存取,然而其不足也是明显的,就是一旦建立其大小就不能改变。若用数组存储数据,则必须创建一个可能存放的最大空间的数组,这无疑浪费了空间。动态数组解决了这个问题。动态数组的思路是:先建立一定大小的数组,向这个 数组中存放数据,如果数组已满,则重新申请一个更大的空间来存放。每次重新申请时可以指定增量(inc)的大转载 2016-02-02 09:35:05 · 522 阅读 · 0 评论 -
BOOL和bool的区别
原文地址:BOOL和bool的区别作者:zhliangBOOL和bool的区别 BOOL和bool的区别: 一 : 1、类型不同 BOOL为int型 bool为布尔型 2、长度不同 bool只有一个字节 BOOL长度视实际环境来定,一般可认为是4个字节 3、取值不同 bool取值false和true,是0和1的区别 BOOL取值FALSE和TRUE,是0转载 2016-02-02 09:35:42 · 380 阅读 · 0 评论 -
realloc,malloc,calloc的区别
三个函数的申明分别是: void* realloc(void* ptr, unsignednewsize); void* malloc(unsigned size); void* calloc(size_t numElements, size_tsizeOfElement); 都在stdlib.h函数库内它们的返回值都是请求系统分配的地址,如果请求失败就返回NULL原创 2016-02-02 09:38:53 · 259 阅读 · 0 评论