2014年3月11日

真正明白C语言二级指针(转载)

摘要: 指针是C语言的灵魂,我想对于一级指针大家应该都很熟悉,也经常用到:比如说对于字符串的处理,函数参数的“值,结果传递”等,对于二级指针或者多级指针,我想理解起来也是比较容易的,比如二级指针就是指向指针的指针.....n级指针就是....但是可能大家比较不容易理解的是,二级指针或者多级指针用在哪里呢?怎么使用呢?有没有必要用呢? 现在我就谈谈C指针的比较经常用到的地方:我们都知道C语言中函数传递参数都是传递"值"的,如下:void fun(void){ int tmp = 0; change(tmp); printf("################ tmp = % 阅读全文

posted @ 2014-03-11 21:49 stackhacks 阅读(1001) 评论(0) 推荐(1)

指针数组与数组指针

摘要: 指针数组:array of pointers,即用于存储指针的数组,也就是数组元素都是指针。例如int *a[3]; 数组指针:a pointer to an array,即指向数组的指针。例如 int (*b)[3]; 具体使用场景如下: 输出如下: 阅读全文

posted @ 2014-03-11 20:33 stackhacks 阅读(272) 评论(0) 推荐(0)

二维数组与二级指针

摘要: Fun (int **p){}这里面的int **p //这里的p不是二维数组的指针,而是指向指针的指针,即二级指针。正确的二维数组的指针应该是:Int a[2][2];Int (*p)[2];//定义时无论数组维数,只可忽略第一维例如:int a[2][2]={0,1,2,3};int **p=(int**)a;//强制将二维数组指针转为指向指针的指针则此时p[0]=0;p[1]=1;p[2]=2;p[3]=3;而p[0][0]=*(*(p+0)+0)=**p;p[0][1]=*(*(p+0)+1);对于p[0][0]:由于*p=0; ====> **p=*(0);引用地址为零的内存, 阅读全文

posted @ 2014-03-11 20:16 stackhacks 阅读(212) 评论(0) 推荐(0)

导航