中易网

怎样更好的去理解指针

答案:4  悬赏:30  
解决时间 2021-03-21 16:09
c语言好难学
最佳答案



举个例子:
你要拿一样东西,有人叫你去地址a。你就跑去了地址a,但那里写着另一个地址b,于是你又跑去了地址b,发现了你要的东西。
这里,你要拿的东西就是你要访问的数据了,地址a就是指针,他里面放的是另外一个地址b,地址b就是你实际要访问的变量,地址b里面放的东西就是你要的值。
跟程序对应起来:
int *a; //地址a
int b = 100; //地址b,地址b放的东西是100
a = &b; //地址a放的东西是地址b地地址。
printf("b=[%d]",*a); // 这里就是根据地址a里的地址找到地址b,然后拿到你要的东西
全部回答
1 指针是一个地址,指向一个变量。 2 指针本身的类型是一个整数。 其实很简单的,初学可能被一些语法唬住了,时间长了就理解了。
你可以这样理解 指针就是专门存放地址的内部变量就像int 存放整型变量一样, int b = 10; int *c = &b; int *e = c; 就像这样 & 你可以看成是取地址符(C++ 里面是引用),就是取的变量b的地址。(术语:地址运算符) * 可以看成求地址符,求出某地址的的指向,通过它我们可以算出C指向了谁(术语:指针运算符)

一:数组指针:数组名本身就是一个指针,指向数组的首地址。注意这是声明定长数组时,其数组名指向的数组首地址是常量。而声明数组并使某个指针指向其值指向某个数组的地址(不一定是首地址),指针取值可以改变。
二:数组指针:是指向数组的一个指针,如int (*p)[10] 表示一个指向10个int元素的数组的一个指针。

另外还有一个指针数组

    主要用来指向若干字符串,使字符串的处理更加灵活。同时,我们应该清楚知道,字符串本身就是一个一维数组。

    对于指针数组应注意以下几点:

    (1):数组中的元素均为指针类型数据

    (2):在给数组赋值时,表面看到是比如字符串等,但实际数组元素本身的值并不是字符串,而是字符串的首地址

    eg.

    main()

    {

    void sort(char *name[],int n);  

    char *name[]={"follow me","the c language","great wall","how to inprove your programming technice"};

    //这里返回指针值的数组name[]各元素的值并不是以上这些字符串,而是这些字符串的首地址

    ......

    }

这是两则的区别。

指针数组:指针的数组,数组的元素是指针;
int *p[2]; 首先声明了一个数组,数组的元素是int型的指针,这个数组的元素是p[0], p[1]两个整形指针

数组指针:指向数组的指针。
int s[2], *p;
p = s;
这个数组的元素是2个整型数
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
下载劲舞SF后为什么就进不了国服了?
有在办公室用电热水壶的吗
请问网易游戏和其他游戏相比有什么特点?
被排气管烫伤怎么办.起泡,流黄水
大纲视图如何转为页面视图
可以往国外邮寄腊肠,火腿肠,烧鸡等吃的东西吗
牛角店法庭地址好找么,我有些事要过去
绿竹翁地板怎么样
电脑下方任务栏那儿出现一些像彩色的线是怎么
适合朋友群发的七夕祝福短信!
一条吸血的蚂蝗进入人身怎么办?
八卦镜取下放在哪里
安康学院宿舍分配……
人能感动 就能幸福 阅读答案
山西省运城市芮城县,晚上20:00--22:00左右,
推荐资讯
我们在加工工件途中遇到锥度怎么算?
苹果手机密码四位数忘记了,怎么才能解锁 现
保母不做活8’7岁的老爸还不让往走赶她该怎么
哺乳期脸上长了个火疖子好 里的胧挤出来后 这
35+8先算什么再算什么
100平米的楼房装修大概多少钱
快要过保质期的食品还可以吃吗
扑克牌上的J、K、Q都是谁?
啊,我要吐槽!电视剧《石敢当之雄峙天东》简
纯弯曲梁横截面上的正应力测定能用其他桥路连
黑龙江省大庆市让胡路区远望小区邮编是什么?
河南移动2017流量大放送活动怎么取消不掉
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?