C 打印阵列的内存位置

C 打印阵列的内存位置,c,arrays,C,Arrays,我是C编程语言的新手。我有一个包含2个元素的指针数组。我想打印数组中的值。我写的代码 #include<stdio.h> int main () { int *bae[] = {10,12}; int i; for(i=0;i<2;i++) { printf("%d",*bae[i]); } return 0; } 希望您能帮助我找到解决方案bae目前是一个int指针数组。如果只需要一个数组,它应该是intbae[]={10,12} 然后,您可以printf(“%d”,bae

我是C编程语言的新手。我有一个包含2个元素的指针数组。我想打印数组中的值。我写的代码

#include<stdio.h>
int main ()
{
int *bae[] = {10,12};
int i;
for(i=0;i<2;i++) {
printf("%d",*bae[i]);
}
return 0;
}

希望您能帮助我找到解决方案

bae
目前是一个int指针数组。如果只需要一个数组,它应该是
intbae[]={10,12}

然后,您可以
printf(“%d”,bae[i])

警告的意思是(“初始化将指针从整数转换为不带强制转换的整数”)在
bae
中存储时,您正在将
10
12
转换为
int*

编辑:如果你真的想使用指针数组,那么你可以这样做(尽管不可取,也不比我之前的答案更好):

#包括
int main()
{
int-ten=10;
int十二=12;
int*bae[]={&ten,&seven};
int i;

for(i=0;i
bae
目前是一个int指针数组。如果您只想要一个数组,它应该是
int-bae[]={10,12};

然后,您可以
printf(“%d”,bae[i]);

警告的意思是(“初始化将指针从整数转换为不带强制转换的整数”)在
bae
中存储时,您正在将
10
12
转换为
int*

编辑:如果你真的想使用指针数组,那么你可以这样做(尽管不可取,也不比我之前的答案更好):

#包括
int main()
{
int-ten=10;
int十二=12;
int*bae[]={&ten,&seven};
int i;
对于(i=0;i
这意味着bae是一个整数指针数组

printf("%d",*bae[i]);
上面的语句等于*(bae+i)。因此它将尝试访问地址10和11处的值,这将导致未定义的行为

这意味着bae是一个整数指针数组

printf("%d",*bae[i]);

上面的语句等于*(bae+i)。因此它将尝试访问地址10和11处的值,这将导致未定义的行为。

否我只想通过类似*指针的指针打印数组中的值(打印值)@mysqllover您不需要使用指针来打印数组内部的值。我想您可以,但那将是
printf(“%d”,*(bae+I));
但这不是您想要的。这正是我想要的。不,我只想用类似*指针的指针打印数组内部的值(它打印值)@mysqllover您不需要使用指针打印数组内部的值。我想您可以,但这样做将是
printf(“%d”,*(bae+I));
但这不是您想要的。这正是我想要的
#include <stdio.h>

int main ()
{
    int bae[] = {10,12};
    int i;
    for(i=0; i<2; i++) {
        printf("%d\n", bae[i]);
    }
    return 0;
}
10
12
int *bae[] = {10,12};
printf("%d",*bae[i]);