
C/C++
申请不容1
乐观开朗,积极向上
展开
-
线程同步之关键段
From:http://blog.youkuaiyun.com/ilovethissite/article/details/85056061.关键段共初始化化、销毁、进入和离开关键区域四个函数。初始化:void InitializeCriticalSection(LPCRITICAL_SECTIONlpCriticalSection);销毁:void DeleteCriticalSection转载 2016-08-15 18:35:41 · 345 阅读 · 0 评论 -
C基础--函数带默认值形参必须放在函数声明的最右侧
当函数有多个形参,如果其中一个定义有默认值,后面的(右侧)形参也必须定义默认值。例: void fun( int a,int b=1,int c); 错误 void fun( int a,int c,int b=1); 正确原创 2016-11-04 17:10:29 · 2367 阅读 · 0 评论 -
二进制数给整型变量赋值?
C语言中的数据基本类型包括:char short int long float double . 用哪种类型定义的就叫XX类型变量,如字符型变量,整型变量,浮点型变量。各种变量中存储的数据,都是以二进制进行存储的。因类型的不同,采用的二进制编译格式不同。如:整形类都是用补码存储,浮点型采用IEEE754标准存储。1 c语言中,变量不可以用二进制数来赋值2 在c语言中,若要给变量赋整型值,则只可以用转载 2016-11-26 12:31:37 · 6292 阅读 · 0 评论 -
C语言指针声明探秘
From:http://blog.youkuaiyun.com/liushuaikobe/article/details/8833319前言我对C指针的理解一直停留在:指针本身是一块内存,它保存了一块内存的地址,可以引用,但是最近在读代码的时候,各种指针的声明搞得我异常苦恼,赶紧去学习了一番,也只是明白了最基本的使用,总结如下。基本知识指针的基本使用正如前言中说的,先看这样一段代码转载 2017-01-09 17:19:48 · 272 阅读 · 0 评论 -
为什么char类型的范围是:-128~+127
转载至:http://blog.youkuaiyun.com/daiyutage/article/details/8575248在C语言中,signed char 类型的范围为-128~127,每本教科书上也这么写,但是没有哪一本书上(包括老师也不会给你为什么是-128~127,这个问题貌似看起来也很简单容易,以至于不用去思考为什么,不是有一个整型范围的公式吗: -2^(n-1)~2^(n-1)-1转载 2017-04-14 10:19:37 · 992 阅读 · 1 评论 -
C语言指针强制类型转换
转自:http://blog.youkuaiyun.com/mhjcumt/article/details/7355127C语言中,任何一个变量都必须占有一个地址,而这个地址空间内的0-1代码就是这个变量的值。不同的数据类型占有的空间大小不一,但是他们都必须有个地址,而这个地址就是硬件访问的依据,而名字只是提供给程序员的一种记住这个地址的方便一点的方法。但是,不同的变量在机器中都是0-1代码,所以,我们不转载 2017-05-26 11:31:36 · 1480 阅读 · 0 评论 -
指针……
1.void(*)() 是一个"返回值为void","参数为空"的"函数指针类型"; void(*abc)() 定义了一个"返回值为void","参数为空"的"名字为abc函数指针"; 例: void * def; void (*abc)(); abc=(void(*)())def;//将def的类型进行强制转换成void(*)(),并赋给abc.原创 2017-05-22 15:44:31 · 242 阅读 · 0 评论 -
C语言中一个unsigned char型变量一直自减到0再自减会得到什么数值?
#include int main(void){ unsigned char a = 0; a--; printf("%d\n", a); return 0;}输出:255// unsigned char的范围0到255,0再减一就会溢出到255.链接:https://www.zhihu.com/question/25015037/answer/29795转载 2017-07-21 15:59:37 · 5114 阅读 · 0 评论 -
volatile关键字
FROM:百度volatile关键字修饰说明当这变量被意想不到地改变时,直接存取原始内存地址,确保本条指令不会因编译器的优化而省略,要求每次直接读值。简单地说就是防止编译器对代码进行优化,比如如下程序:XBYTE[2]=0x55;XBYTE[2]=0x56;XBYTE[2]=0x57;XBYTE[2]=0x58;对外部硬件而言,上述四条语句分别表示不同的操作,会产生转载 2017-10-15 11:47:58 · 222 阅读 · 0 评论 -
int* p = new int[5](); 与 int* q = new int[5]; 的区别
/*That's not quite true (you should almost certainly get yourself an alternative reference), you are allowed an empty initializer (()) which will value-initialize the array but yes, you can't initiali转载 2017-11-03 11:23:48 · 2921 阅读 · 0 评论 -
格式符
1.%5s char name[10];…… printf("%5s \n",name); 如果字符串长度不足5个(不包括\n),前面用空格补齐; 如果字符串长度超过5个,原样输出,等价于%sscanf("%1s",name);输入字符串时,只接收一个字符(不包括\n);假设此时输入5个z,则这句话每次只接收一个z原创 2016-06-30 10:25:56 · 377 阅读 · 0 评论 -
动态数组
From: int a[10]; 系统在栈中分配空间,系统会自动实现内存的分配和回收。 int *a = new int[10]; 系统在堆中分配空间,不用时需要使用delete[] a进行内存释放;如果程序中没有delete,可能会造成内存的泄露。栈的实际内存是连续内存,因此可分配空间较小,堆可以是非连续内存,因此可以分配较大内存。因此,如果需要分配较大内存,需要分配在堆上;转载 2016-05-09 10:30:40 · 751 阅读 · 0 评论 -
float b=(uchar)(-(真/假));
float b=(uchar)(-(3>=2));b=255.0000;因为char原创 2014-11-20 11:29:43 · 584 阅读 · 0 评论 -
静态成员函数访问非静态成员
VS2010 基于对话框MFC程序,解决方案名:HelloWorld例:类:CHelloWord在HelloWorldDlg.cpp中:定义全局变量 CHelloWorld *g_pMainDlg=NULL;在构造函数中:g_pMainDlg=this;在你写的静态函数中:g_pMainDlg->xxx;就可以引用类的成员函数或控件的成员变量了原创 2016-08-18 16:56:47 · 469 阅读 · 0 评论 -
MessageBox
1.在类中使用:MessageBox("xxx");2.在静态函数中使用:AfxMessageBox("xxx");::MessageBox("xxx");注:::作用于标识符,它分为三种:1)global scope(全局作用域符),用法(::name)2)class scope(类作用域符),用法(class::name)3)namespace scope(命名转载 2016-08-19 10:49:14 · 346 阅读 · 0 评论 -
C++ this指针
http://blog.youkuaiyun.com/feiyond/article/details/1652505http://www.cnblogs.com/uniqueliu/archive/2011/09/24/2189545.html=================this指针的由来==================== 一个学生可以有多本书一样,而这些书都转载 2016-08-15 12:55:28 · 242 阅读 · 0 评论 -
成员运算符(.)与指针运算符(->)的区别
在间接引用的时候,例如指针*p就用p->member如果是直接引用或者类本身或者内部引用就用.比如ClassA.member或ClassType& CopyConstructor(ClassType &ClassA){variable = ClassA.member;}转载 2016-08-16 13:23:51 · 1101 阅读 · 1 评论 -
memset不能有效清空数组的原因
From:问题:为什么这样用memset不能清零#include#includeint main(){ int i,a[100]; memset(a,0,100);//改memset(a,0,sizeof(a));或memset(a,0,100*sizeof(int));就可以了 for(i=0;i printf("%d ",a[i]转载 2016-11-23 15:50:26 · 9592 阅读 · 0 评论 -
创建动态二维数组
http://blog.youkuaiyun.com/longshengguoji/article/details/11131365int _tmain(int argc, _TCHAR* argv[]){ int row,column; cin>>row>>column; //方法一 //申请空间 int ** a = new int *[row];//分配一个指针数组,将其首地址保存在b转载 2016-11-25 13:56:22 · 372 阅读 · 0 评论 -
sizeof(数组名)和sizeof(指针)
http://blog.youkuaiyun.com/kangroger/article/details/20653255在做这道题时:32位环境下,int *p=new int[10];请问sizeof(p)的值为()A、4 B、10 C、40 D、8我以为正确答案为C,int类型为32位,占转载 2016-11-28 16:32:25 · 483 阅读 · 0 评论 -
C++中delete和delete[]的区别
点击打开链接: C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。 关于 new[] 和 delete[],其中又分为两种情况:(1) 为基本数据类型分配和回收空间;(2) 为自定义类型分配和回收空间。请看下面的程序。 12转载 2015-01-28 16:08:26 · 356 阅读 · 0 评论 -
delete指针之后应该赋值NULL
转载自:http://blog.youkuaiyun.com/wangweitingaabbcc/article/details/6724795转载 2014-06-05 10:16:43 · 744 阅读 · 0 评论 -
全局变量不能定义在“被多个.c文件引用的.h文件”中
转自: https://blog.youkuaiyun.com/basstal/article/details/52275191全局变量global定义在头文件中,因为所有定义预设为外部链接,所以在头文件被.c文件包含以后,等于有两个或更多同等定义的global存在于不同的翻译单元,编译器发现不了错误,因为编译器每次是以翻译单元运作的。但是,链接器会在解析交叉引用时报告“符号被多重定义”错误。//Define...转载 2018-05-24 11:17:46 · 6006 阅读 · 0 评论