专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > C语言

c的小疑点

发布时间:2011-06-28 16:19:12 文章来源:www.iduyao.cn 采编人员:星星草
c的小问题
下面是我的代码 (本来写的是其他程序,有点长就把问题给提了出来)
 #include <stdio.h> 

int main(int argc, char *argv[]) 

int i; 

if ((*++argv)[0] == '*') 
i = 3 * 5; 
printf (" %d\n", i); 

return 0; 

输出的结果: 
[root@localhost 5]# ./a.out * 
4972912 
[root@localhost 5]# ./a.out "*" 
15 

用其他符号都没有这问题 
我想问为什么乘号一定要加上引号才可以 
linux命令行中的乘号是什么,有什么特殊意义吗?


------解决方案--------------------
没用过Linux。。
------解决方案--------------------
字符比较。。。
------解决方案--------------------
你这个时候输入的*不是字符,而是正则表达式中的*,在这里相当于是当前目录下任意文件路径,你可以用print来输出你的参数,可以看出来是啥玩意儿。反正不会是"*"所以条件不能执行!
------解决方案--------------------
因为*被shell扩展成一堆文件名了...
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: