必须收藏一下
楼主这是在:一派胡言、一塌糊涂、胡诌乱掰、梦呓......
支持楼主 。
看得出来,你在这方面的确下了不少功夫,我给你点个赞。:loveliness:以你为参考,侧面反映了我自身的一些不足。希望你可以做到言简意赅,再接再厉。:lol:
我是师兄 发表于 2012-7-17 09:45
int a; int * p=a;
这个为什么不好理解
int a;
遇到“=” 这个东西 右边的 要向左边的 进行自动转换类型(这只是暂时的转换)还有一个叫强制转换
其实LZ按我对指针的理解是这样的
什么叫指针呢?
顾名思义就是指向一个东西,也就是一个地址。
个人看法指针相当于一个"门牌"或者就是一个标志
如: int a;int *p;p=a;
1.此时的指针p相当与一个房间的门牌号(001),而a相当与001这空房间里的某个东西(抽屉把里面有9个物品,连续的放在一起,每1个物品放一层,一层可以放4个物品也就是相当于一个int型有4个字节)而第一个物品就是a,第二个物品就是a,第三个物品就是a等吧.那么p=a就是说001房间里面的抽屉。
2.当把上面的p=a换成p=&a时,按上面解释就是说001房间里面抽屉的第一个物品。
&这个意思是取地址符号也就是取了抽屉第一个物品的地址。不难理解把。
之所以有指针就是方便我们有目的性有方向性的去寻找一个东西。
如果是int **b;(一个二级指针)也就是说二级指针就相当于一个楼房的第几层。
按上述说: 我们要想需找到一个我们上面那说的抽屉就要让二级指针(**p)指向一级指针(*p),然后一级指针在指向抽屉。
当我们用printf("%d\n",sizeof(a));的时候为什么是36呢?
按上面分析 一个抽屉就可以装36个物品!
而对于2维数组 a ;int * p=a; printf("%d\n",sizeof(a));这里面的a相当与一维数组里面的a;
看这一代码就明白了结果是4# include <stdio.h>
void main()
{
int a ;
int * p=a;
printf("%d\n",sizeof(a));
}
不知道这样理解可以不,望大家点评下{:5_110:}
{:1_1:}
顶
看看。。。。。。
ALL,right,看了一会 看 下去了,感觉晕晕的;
表示看糊涂了
我想知道定义了一个字符串数组之后如何用指针寻找它??
嗯,说得不错,很好
楼主讲的很好
C指针的精华
:smilexuexi le
这个很有用 对于我这个初学者来说太及时了 目前一直纠结在指针和数组这一块 这个真是太及时了!
厉害了,虽然有好多似懂非懂,但这种讨论真是很好的!!顶!d=====( ̄▽ ̄*)b
{:7_146:}{:7_146:}{:7_146:}
{:10_249:}
shanyiran 发表于 2013-2-21 18:25
很不错的东西。。。支持下!
厉害了