【发布时间】:2013-08-07 00:24:48
【问题描述】:
据我所知,像这样的数组
int 示例[10]
只是指向此数组中第一个元素的指针。
char* argv[]
是一个指针数组;所以应该是指向其他指针的指针。
我现在有以下问题:
int main(int argc, char* argv[])
{
double ptrarg2=argv[2][1];
printf("beginletter=%c\nbeginpos=%d\n",&ptrarg2, ptrarg2);
return 0;
}
我正在使用./program test 启动程序并期望输出为:
beginletter=c
beginpos=123213123
123213123 应该是实际存储 c 的地址。
我实际上得到了:
beginletter=
beginpos=0
我做错了什么?提前谢谢!
【问题讨论】:
-
您是否遗漏了命令参数中的某些内容?或者你应该给你的数字减 1。
-
不,
int example[10]声明一个数组对象,而不是,我重复 not,一个指针对象。数组不是指针。阅读comp.lang.c FAQ 的第 6 节,尤其是问题 6.3。