![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
指针
文章平均质量分 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 · 396 阅读 · 0 评论 -
void*的用法
void*表示空类型指针,即任何类型的指针。其意思是知道该指针与一地址相关,但不知道在此地址上的对象的类型。 之所以void不能表示任意类型的原因是C/C++是静态语言,只要定义变量就要为其分配内存。然而不同类型的变量其内存是不同的,若用void表示任意类型的话,无法为其分配内存的大小。而所有指针类型的变量,其内存空间都是相同的。因此可以定义任意类型的指针。 void* a; 定义上原创 2013-10-09 11:17:45 · 846 阅读 · 0 评论 -
关于局部指针与栈的一点小结
昨天看到strcpy函数的典型实现时,发现该函数的返回值为局部指针变量,当时产生疑问:局部指针在函数结束时不是会被注销掉吗?为什么此处没有呢? 下面给出strcpy函数代码: char* Mystrcpy(char* strDest, const char* strSrc) { assert((strDest!= NULL)&&(strSrc != NULL)); char* adress原创 2014-06-24 16:03:44 · 802 阅读 · 0 评论 -
关于局部指针的一点总结
经常碰到的问题,碰到函数局部变量指针的时候会出错。那么C++中函数局部变量指针是如何释放的呢? 在函数内定义的变量所占的内存会在函数返回时被清空,因此若是以局部变量做返回值,会返回一个空值。 具体说一下: 当编译器为函数调用产生代码时,它会先将所有的参数压栈,然后将返回地址压入栈中,最后为局部变量在栈中开辟空间,结构如下(栈顶在上方): 函数参数原创 2014-08-06 10:30:36 · 2353 阅读 · 0 评论