#include void fun1(int*& p)//引用p等于就是传过来的p,引用改变了p也就改变了{ p = new int; *p = 90;}void fun2(int** p)//直接将指针的地址传过来,直接通过指针的地址操作指针{ *p = new int; ...
分类:
其他好文 时间:
2014-10-26 11:36:29
阅读次数:
195
指针是指向某一个类型(内置的或者自定义的)的对象的变量。通常我们说的“指针”,意指它所指向的对象的地址,也就是“指针的值”;但是指针本身也是变量,也对应内存中的一块地方,因此“指针的地址”就是存储这个指针变量的内存的地址;结合代码来看:/*******************************...
分类:
其他好文 时间:
2014-10-11 18:32:45
阅读次数:
433
在C语言编程时,经常会用到指针或数组作为参数传递,但有时结果却并不是自己想要的。下面总结下指针、数组作为参数传递需要的问题。
一级指针与二级指针的使用范围:
一级指针存放变量的地址,指向的值是变量的内容。如int* p={1,2,3}, p=数组的首地址,*p=数组的第一个值;
二级指针存放一级指针的地址,指向一级指针。如int*p ={1,2,3},...
分类:
编程语言 时间:
2014-08-26 15:27:46
阅读次数:
252
intp;//这是一个普通的整型变量int*p;//首先从P处开始,先与*结合,所以说明P是一个指针,然后再与int结合,说明指针所指向的内容的类型为int型.所以P是一个返回整型数据的指针intp[3];//首先从P处开始,先与[]结合,说明P是一个数组,然后与int结合,说明数组里的元素是整型的...
分类:
其他好文 时间:
2014-08-21 14:47:55
阅读次数:
153
首先,看一维数组。[]符号是下标运算符,a[i]就是*(a+i)那么a[i][j] 就是*(a[i]+j)=*(*(a+i)+j)本人对二级和多级指针的理解:1.抽象上说二级指针的内容是地址的地址。变量A好像跟你捉迷藏似的,你要想找到A,你先得去一个地方把A的地址给找出来,然后再根据这个地址找到A。...
分类:
其他好文 时间:
2014-07-31 16:53:46
阅读次数:
179
NULL在C语言中是=0,在C语言中,如果指针的地址指向0就不会有危险nil是OC的,是一个空对象,发送消息不会出问题。但是当这个对象release之后,你再使用它的地址就会出现各种恐惧的事情,所以一般在一个对象释放之后会加一句代码,xxx
= nil;使它的指针地址为0, 称为安全释放。
分类:
其他好文 时间:
2014-07-22 23:01:13
阅读次数:
233
1.首先指出,NF_HOOK系列宏的outdev参数的传递方式(直接传递一个net_device结构体指针)是不正确的正确的方式要么是不传递,要么是传递指针的地址,即地址的地址。2.接下来指出,仅仅传递一个地址为何不对因为在该HOOK点可能存在多个HOOK函数,每一个函数都有可能改变skb的路由,即调用reroute,比如NAT,比如IP Mark等,这样后续的HOOK函数看到的依然是旧的outd...
分类:
Web程序 时间:
2014-06-08 03:27:38
阅读次数:
258
空指针究竟指向了内存的哪个地方?
如果仅仅声明一个指针,而没有任何赋值,那么这个指针是野指针,它会指到VM的任何位置,碰到异常操作,比如对只读区写操作,就会引起硬件中断产生core,也就是通常的段错误。
良好的编程风格是将指针永远都可控,也就是这个指针的地址,程序可控,通常,对于不使用或初始的指针都将其地址置为0,这是约定俗成的,就如同,我们经常使用的进制一样,你非用一个别人都不用的进...
分类:
编程语言 时间:
2014-05-15 07:04:34
阅读次数:
241