怎样更好的去理解指针
答案:4 悬赏:30
解决时间 2021-03-21 16:09
- 提问者网友:话酸浅沫
- 2021-03-20 19:21
c语言好难学
最佳答案
- 二级知识专家网友:我的任性你不懂
- 2021-03-20 19:55
举个例子:
你要拿一样东西,有人叫你去地址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楼网友:专属的偏见
- 2021-03-20 22:34
1 指针是一个地址,指向一个变量。
2 指针本身的类型是一个整数。
其实很简单的,初学可能被一些语法唬住了,时间长了就理解了。
- 2楼网友:白日梦制造商
- 2021-03-20 21:18
你可以这样理解 指针就是专门存放地址的内部变量就像int 存放整型变量一样,
int b = 10;
int *c = &b;
int *e = c;
就像这样
& 你可以看成是取地址符(C++ 里面是引用),就是取的变量b的地址。(术语:地址运算符)
* 可以看成求地址符,求出某地址的的指向,通过它我们可以算出C指向了谁(术语:指针运算符)
- 3楼网友:如果这是命
- 2021-03-20 21:07
一:数组指针:数组名本身就是一个指针,指向数组的首地址。注意这是声明定长数组时,其数组名指向的数组首地址是常量。而声明数组并使某个指针指向其值指向某个数组的地址(不一定是首地址),指针取值可以改变。
二:数组指针:是指向数组的一个指针,如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个整型数
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯