2012-01-15 21 views
1

比如我想一个情况是这样的:如果第一个值不存在,是否可以将默认值赋值给变量?

string param1 (argv[i+1]); 

,我知道这是可能的,这可以看出来数组长度,有没有在,每当我把语句的程序等申报方式这是一个默认值将被分配,像明显不正确的字符串param1(argv [i + 1]或“默认”);

+1

有没有办法让编译器知道'1 + 1'是不是一个有效的数组索引。 – 2012-01-15 21:38:05

回答

6

什么:

string param1((i < argc-1) ? argv[i+1] : "default"); 
2

嗯,很好,很明显的。

char const * avi1 = "default"; 
if (argc > (i + 1)) { 
    avi1 = argv[i+1]; 
} 
string param1(avi1); 
1

简答:没有。

如果你知道这可能看起来外面数组长度的,检查manually.Something像

string param1((i < argc-1) ? argv[i+1] : "default"); 
相关问题