永发信息网

二次指针为什么要用2个*?为什么多次指针要用多个*?

答案:4  悬赏:20  手机版
解决时间 2021-12-01 11:12
  • 提问者网友:嗝是迷路的屁
  • 2021-11-30 12:18
二次指针为什么要用2个*?为什么多次指针要用多个*?
最佳答案
  • 五星知识达人网友:西岸风
  • 2021-11-30 13:27
真要向底层了解我建议你去看看汇编。我从C的层面解释下:
1)每个数据都有类型的,比如int a,int a[10],int*a;,int **a;这些都是存储在内存中的一段空间,大小随着a的类型而改变,a就是这段空间的名称.
2)由于空间是连续的,所以对于地址(指针)类数据是允许address+i(i是偏移址),例如数组名加1表示数组的第二个元素。但是,对于数据类的变量,例如int a;a+=1;那么是把a的值加了1.这就是为什么要区分类型.
3)同样的a+1对于int *a和int**a表达的意义是不同的。如果a是数组,比如int a[10],那么a+1表示数组的第二个元素(a[1]),但是如果a[10]里面存的全部是指针(已经指向某段空间),那么a[1]自然就是一个int*类型的指针。所以,a+1表示a[1],而a[1]+1等同于2)里面说明的那种情况。
全部回答
  • 1楼网友:山有枢
  • 2021-11-30 15:04
感觉研究这个问题没什么意义。加个*就是了,还费劲地去追问,实在搞不明白怎么想的。。。
  • 2楼网友:孤老序
  • 2021-11-30 14:53
可以用指针来表示,你自己也说了,所以需要指针,就变成二次指针了
  • 3楼网友:几近狂妄
  • 2021-11-30 13:45
指针的指针
指针也是有内存地址的,所以指针,指向另一个指针的时候,就是**

char *x[] = "hello world";
int len = sizeof(len);
int i = 0;
for (; i < len; i++) {
printf("%c\n", **x);

x++;

}追问指向另一个指针的地址,,,一次指针就够了啊,,,何必搞那么多呢?一次指针本来就存储的地址啊
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯