在双指针不起作用的帮助下指向第一个数组元素

时间:2014-12-15 08:15:53

标签: c

将指针指向另一个指针有什么问题?

#include<stdio.h>

int main()
{
    int a[2]={7,8};

    int **k;

    k=&a;

    printf("%d",**k);

    return 0;
}

指向基地址的指针中的数组名称我想当我试图用双指针指向它时,这里有什么问题?

2 个答案:

答案 0 :(得分:1)

您可以使用单个指针指向阵列的第一个位置并进行打印。我认为不需要双指针。

作业

int *k = a;

使指针k指向由a给出的数组的第一个位置。 双指针用于指向指针,此处a不是指针。

#include<stdio.h>

int main()
{
    int a[2]={7,8};

    int *k;

    k=&a;

    printf("%d\n",*k);
    printf("%d\n",*(k+1));

    return 0;
}

答案 1 :(得分:0)

在C99或以上,您可以使用compound literals

int **k;

k = &((int *){a});

但正如Gopi指出的那样,在这种情况下,单个指针就足够了。