我有int
秒的数组,表示为int* myInts[100];
如何打印的int数组的索引
当我尝试打印0 日指数像这样,
printf("%d\n",myInts[0]);
我得到以下编译器警告:
警告:格式 '%d' 期望类型 'INT' 的参数,但参数2 的类型是“* INT [-Wformat =]
这是为什么?
我有int
秒的数组,表示为int* myInts[100];
如何打印的int数组的索引
当我尝试打印0 日指数像这样,
printf("%d\n",myInts[0]);
我得到以下编译器警告:
警告:格式 '%d' 期望类型 'INT' 的参数,但参数2 的类型是“* INT [-Wformat =]
这是为什么?
如果你想要一个int
阵列,其声明为
int myInts[100];
如果你想的int *
阵列,打印作为
printf("%p\n", (void *)myInts[0]);
int* myInts[100];
声明一百指针数组整数,而不是你描述的一百个整数。
您需要使用:
int myInts[100];
代替。
int* myInts[100];
它表示100个整数指针的数组。 int myInts[100];
它表示100个整数的数组。
消除警告不喜欢 printf("%p\n", (void *)myInts[0]);
您应该删除第二个声明中的'*'以匹配文本。 – mch 2014-09-22 06:21:15
为什么不与*? – Apollo 2014-09-22 04:47:57
因为*使它成为一个指针数组。 – 2014-09-22 04:49:13
“int *”表示指向int的指针,而“[100]”表示大小为100的数组。总的来说,包含int指针的大小为100的数组。 – 2014-09-22 04:49:22