指针
文章平均质量分 66
进化中
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数组指针与指针数组的区别
数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。 p=a;转载 2013-10-04 10:56:39 · 452 阅读 · 0 评论 -
void*的用法
void*表示空类型指针,即任何类型的指针。其意思是知道该指针与一地址相关,但不知道在此地址上的对象的类型。之所以void不能表示任意类型的原因是C/C++是静态语言,只要定义变量就要为其分配内存。然而不同类型的变量其内存是不同的,若用void表示任意类型的话,无法为其分配内存的大小。而所有指针类型的变量,其内存空间都是相同的。因此可以定义任意类型的指针。void* a;定义上原创 2013-10-09 11:17:45 · 942 阅读 · 0 评论 -
关于局部指针与栈的一点小结
昨天看到strcpy函数的典型实现时,发现该函数的返回值为局部指针变量,当时产生疑问:局部指针在函数结束时不是会被注销掉吗?为什么此处没有呢?下面给出strcpy函数代码:char* Mystrcpy(char* strDest, const char* strSrc){ assert((strDest!= NULL)&&(strSrc != NULL)); char* adress原创 2014-06-24 16:03:44 · 871 阅读 · 0 评论 -
关于局部指针的一点总结
经常碰到的问题,碰到函数局部变量指针的时候会出错。那么C++中函数局部变量指针是如何释放的呢?在函数内定义的变量所占的内存会在函数返回时被清空,因此若是以局部变量做返回值,会返回一个空值。具体说一下:当编译器为函数调用产生代码时,它会先将所有的参数压栈,然后将返回地址压入栈中,最后为局部变量在栈中开辟空间,结构如下(栈顶在上方): 函数参数原创 2014-08-06 10:30:36 · 2494 阅读 · 0 评论
分享