加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

可以有指向指针指针的指针吗?

发布时间:2020-12-16 05:06:48 所属栏目:百科 来源:网络整理
导读:参见英文答案 How many levels of pointers can we have?14个 如果C(char * names [])中有指针和指针指针(char ** cur_name = names);可以有指向指针指针的指针吗? 或者是指向指针的指针只是一个链表?也许这是一个愚蠢的问题,但我想知道答案. 解决方法 是
参见英文答案 > How many levels of pointers can we have?14个
如果C(char * names [])中有指针和指针指针(char ** cur_name = names);可以有指向指针指针的指针吗?

或者是指向指针的指针只是一个链表?也许这是一个愚蠢的问题,但我想知道答案.

解决方法

是的,您可以拥有任意数量的指针级别.
int x = 5;
int *a = &x;
int **b = &a;
int ***c = &b;

printf("%d %d %d %dn",x,*a,**b,***c);

指向指针的指针不是链表.链表是一种结构类型,包含指向其自己类型的指针:

struct list
{
   int data;
   struct list *next;
};

这样你就可以将它们链接在一个列表中:

struct list three = { 3,NULL };
struct list two = { 2,&three };
struct list one = { 1,&two };
struct list head = { 0,&one };

并迭代它们:

for (struct list *node = &head; node->next; node = node->next)
{
    printf("%dn",node->data);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读