免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 1807 | 回复: 10
打印 上一主题 下一主题

数组指针问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-09-26 12:20 |只看该作者 |倒序浏览
  1. #include <stdio.h>;
  2. int main(int argc,char *ar[b]gv[/b][])
  3. {
  4. int arg;
  5. for(arg=0;arg<argc;arg++)
  6.     {
  7.       if(argv[arg][0]=='-')
  8.           printf("option:%s\n",argv[arg]+1);
  9.       else
  10.           printf("argument %d:%s\n",arg,argv[arg]);
  11.     }
  12. exit(0);
  13. }
复制代码

printf("option:%s\n",argv[arg]+1);中的 ,argv[arg]+1换了argv[arg][1]则:
[root@IT-ZHY home]# ./args -i -lr 'hi there' -f fred.c
argument 0:./args
段错误
printf("option:%s\n",argv[arg]+1);换为printf("option:%c\n",argv[arg][1]);则可以编译通过
为什么.

论坛徽章:
0
2 [报告]
发表于 2005-09-26 12:56 |只看该作者

数组指针问题

楼主
二维数组和一维数组在内存中有什么区别吗?

论坛徽章:
0
3 [报告]
发表于 2005-09-26 13:03 |只看该作者

数组指针问题

要解析命令行参数的话
man getopt getopt_long

论坛徽章:
0
4 [报告]
发表于 2005-09-26 13:57 |只看该作者

数组指针问题

2维数组可看做是特殊的一维数组argv[arg]可看做是一个一维数组名 argv[arg]+1我觉得不应该是加一个字符的大小吧  argv[arg][1]指向一个字符可以理解可argv[arg]+1指向的是一个字符串而且是一个地址只加了一个字符大小

论坛徽章:
0
5 [报告]
发表于 2005-09-26 14:56 |只看该作者

数组指针问题

argv[arg]+1换了argv[arg][1]区别大了,第一个是argv[arg]+1是下标为arg的数组元素起始地址加一个字节,argv[arg][1]是数组下标是arg的数组元素(还是一个数组)的第一个元素。

论坛徽章:
0
6 [报告]
发表于 2005-09-26 14:56 |只看该作者

数组指针问题

好久没来了。

论坛徽章:
0
7 [报告]
发表于 2005-09-26 15:06 |只看该作者

数组指针问题

  1. #include<stdio.h>;
  2.                                                                                 
  3. void main()
  4. {
  5.   char *arg[][4]={"sfss","dfsa"};
  6.   printf("%s %s\n",arg[0][1],arg[0]+1);
  7.   printf("%c %s\n",*arg[0][1],*(arg[0]+1));
  8. }
复制代码

程序结果:
  1. [root@IT-ZHY home]# ./array
  2. dfsa I?
  3. d dfsa
复制代码


我又这样搞了一下 arg[0]+1出了问题
各位高手大哥快解释下 小弟实在想不明白

论坛徽章:
0
8 [报告]
发表于 2005-09-26 15:21 |只看该作者

数组指针问题

  1. int main(int argc,char *ar[b]gv[/b][])
复制代码


带了两个形参,第一个我知道,是参数的个数,第二个定义是应该是一个指针数组,怎么那么怪,楼主给解释一下吧。小弟刚学c。

论坛徽章:
0
9 [报告]
发表于 2005-09-26 15:21 |只看该作者

数组指针问题

[quote]原帖由 "ldap"]下标是arg的数组元素(还是一个数组)的第一个元素。[/quote 发表:
      太谢谢了!!!!  我 知道我 的脑袋拧在哪里了     

论坛徽章:
0
10 [报告]
发表于 2005-09-26 15:26 |只看该作者

数组指针问题

第二个参数是 这样的 char *argv[]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP