什么应该在C中使用双指针?任何人都可以用一个例子来解释
我所知道的是双指针是指向指针的指针.为什么我需要一个指针指针?
每个程序都从main(int argc, char *argv[])
定义开始.
我不明白这意味着什么.如果我们在程序中不使用这些参数,有人可以解释为什么我们会使用这些参数,我会很高兴的吗?为什么不int main()
呢:?
程序的名称是其中的一个元素,*argv[]
并且argc
是参数个数的计数*argv[]
?发送到的其他参数是*argv[]
什么?我们如何发送它们?
我目前正在学习node.js,我只是很好奇这是什么意思,我正在学习,你能告诉我为什么这段代码会做它的作用:
var result = 0;
for (var i = 2; i < process.argv.length; i++){
result += Number(process.argv[i]);
}
console.log(result);
Run Code Online (Sandbox Code Playgroud)
我知道它会添加你添加到命令行的数字,但为什么"i"以2开头?我理解for循环,所以你不必详细了解它.
非常感谢你提前.
所以我试图检查我输入到程序中的参数,其中一个是"是"或"否",输入时没有引号.
我正在尝试测试等效性(if(argv [n] =="yes"))但是每当输入实际上是肯定时,它似乎返回false(当我输出它时它确认了这一点).我在这里错过了什么,我做得不正确?如果我理解正确argv [n]返回一个以null结尾的cstring,那么它应该允许我这样做.
每次我用Xcode创建一个项目(标准命令行实用程序)时,我的main函数开始看起来像这样:
int main(int argc, const char * argv[])
Run Code Online (Sandbox Code Playgroud)
括号中的所有内容是什么?为什么要使用这个而不仅仅是
int main()
?
自从我学会编程以来,我就知道如何编写一个接受命令行参数的程序.我不明白的是这些参数如何获得它们的价值.希望我没有这两个混合,但参数和参数之间存在差异.一个参数是给定到该函数的值时,它被称为如:FOO(A,B,C); 其中a,b和c是值.一个参数是在函数内部,同时被调用的值.
所以我的问题是一个人如何将命令行参数传递给程序?我理解如何读取参数,即参数argc
的数量,argv
是指向包含参数等的字符串数组的指针,但我只是不知道如何给这些参数赋值.
我正在寻找C和C++的信息.我在这方面有点新手.
我正在阅读C Primer Plus中关于命令行参数的一节argv
,我很难理解这句话.
它说,
程序将命令行字符串存储在内存中,并将每个字符串的地址存储在指针数组中.该数组的地址存储在第二个参数中.按照惯例,
argv
对于参数值,将调用指向指针的指针.
这是否意味着命令行字符串作为指向数组的指针数组存储在内存中char
?
在普通的c/c ++程序中,我们将main函数编写为
int main(int c, char **argv)
Run Code Online (Sandbox Code Playgroud)
要么
int main(int c, char *argv[])
Run Code Online (Sandbox Code Playgroud)
这里argv表示一个指针数组,但我们甚至用**表示双指针(指向指针).
例如:
char p,*q,**r;
q=&p;
r=&q;
Run Code Online (Sandbox Code Playgroud)
这里r是双指针而不是指针数组.
任何人都可以解释这个区别吗?
如果我进入命令行C:myprogram myfile.txt
如何在程序中使用myfile.我是否必须扫描它或是否有任意方式访问它.
我的问题是如何在我的程序中使用myfile.txt.
int
main(){
/* So in this area how do I access the myfile.txt
to then be able to read from it./*
Run Code Online (Sandbox Code Playgroud) 我正在编写一个程序,它接受命令行参数并使用自定义比较器按字母数字排序的顺序打印它们。
一路上,我陷入了在std::set
容器中插入命令行参数的困境。网上查了一些类似的代码,发现如下:
std::set<char*, decltype(customComparator)> args (argv, argv+argc, customComparator)
Run Code Online (Sandbox Code Playgroud)
这个argv + argc
论点是什么意思/做什么?
当我尝试插入 cmd 参数时,例如:
std::set<char*, decltype(customComparator)> args (argv, customComparator)
Run Code Online (Sandbox Code Playgroud)
参数上有一条红色的波浪线argv
。