C语言指针

深入了解Windows句柄到底是什么(句柄是逻辑指针,或者是指向结构体的指针,图文并茂,非常清楚)good

总是有新入门的Windows程序员问我Windows的句柄到底是什么,我说你把它看做一种类似指针的标识就行了,但是显然这一答案不能让他们满意,然后我说去问问度娘吧,他们说不行网上的说法太多还难以理解。今天比较闲,我上网查了查,光是百度百科词条“句柄”中就有好几种说法,很多叙述还是错误的,天知道这些误人子弟的人是想干什么。 这里我列举词条中的关于句柄的叙述不...

关于c语言内存分配,malloc,free,和段错误,内存泄露

1.   C语言的函数malloc和free  (1) 函数malloc和free在头文件<stdlib.h>中的原型及参数        void * malloc(size_t size) 动态配置内存,大小有size决定,返回值成功时为任意类型指针,失败时为NULL。        void  free(void *ptr) 释放动态申请...

C/C++ 关于数组和指针的总结

1、数组的声明形如a[d],其中a是数组的名字,d是数组的维度,编译的时候数组的维度应该是已知的,所以维度d必须是一个常量。如果要定义一个不知道元素个数的以为数组,那么请使用vector容器; unsigned cnt = 42; //不是常量表达式 constexpr unsigned sz = 42; //常量表达式 int arr...

对数组名取地址 a[ ],&amp;amp;a

C语言规定,数组名代表数组的首地址,也就是第0号元素的地址。所以a==&a[0] 但对数组名取地址时却要注意了,在理解“对数组名取地址”这一表达式的含义时一定要记住:数组名是“数组”这种变量的变量名 这样,&a就好理解了,它取的是“数组”这种变量的地址 &a+1自然也就要跨过整个数组,所有元素长度总和,这么长的一个长度。例如:int...

深度解析C语言中的sizeof

1)解析C语言中的sizeof 一、sizeof的概念  sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。它并不是函数。sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作数的类型决定。 二、sizeof的使用方法  1、用于数据类型   sizeof使用形式:...

C++异常

一、什么是异常处理         一句话:异常处理就是处理程序中的错误。 二、为什么需要异常处理,以及异常处理的基本思想         C++之父Bjarne Stroustrup在《The C++ Programming Language》中讲到:一个库的作者可以检测出发生了运行时错误,但一般不知道怎样去处理它们(因为和用户具体的应用有关);另一...

C语言结构体指针(指向结构体的指针)详解

C语言结构体指针详解 一.前言 一个指向结构体的变量的指针表示的是这个结构体变量占内存中的起始位置,同样它也可以指向结构体变量数组。 *a).b 等价于 a->b。 "."一般情况下读作"的”,结构体a的b。 “->”一般读作"指向的结构体的",a指向的结构体的b。 二.实例 #include<stdlib.h> #include&...

c语言进阶6-指针

指针是c语言的一个重要组成部分 是c语言的核心、精髓所在,用好指针可以在c语言编程中起到事半功倍的效果。一方面,可以提高程序的编译效率和执行速度以及实现动态的存储分配;另一方面,使用指针可使程序更灵活,全球表示各种数据结构,编写高质量的程序。 指针是c语言显著的优点之一,其使用起来十分灵活而且能提高某些程序的效率,但是如果使用不当则很容易造成系统错误。许多...

多种方式实现字符串/无符号数反向输出_栈_递归_头尾指针

1、递归调用方式实现无符号数反向输出 C语言实现(DEV c++4.9.9.2运行通过) #include<stdio.h> void reverse_print(unsigned long num) { if(num==0) return; printf("%d",num%10); //输出最低位...

源码剖析——深入Windows句柄本质

参考资料: 1. http://www.codeforge.cn/read/146318/WinDef.h__html windef.h头文件 2. http://www.codeforge.cn/read/146318/WinNT.h__html winnt.h头文件 3. https://msdn.microsoft.com/en-us/library...