请问C++达人!char**是啥??

来源:百度知道 编辑:UC知道 时间:2024/06/30 04:45:00
老师给了段代码,
int main (int argc, char** argv)
{
TextEditor textedit;
if (argc != 2)
{
cerr << "usage: " << argv[0] << " <filename\n";
exit (-1);
}
textedit.loadFile (string(argv[1]));
textedit.run ();
return 0;
}
我不太明白其中的char** 是啥啊。。麻烦解答一下。。。
如何往char++ 这种东西里面输入。。希望用到cin。。。或getline
顺便有谁知道怎么样去掉string的前N个字符么?
比如string=“abcdef”;我想让它去掉前3.。变成 "def"....
谢谢啦!

char** argv //表示定义一个指向指针的指针,相当于定义一个二维数组char argv[][]
向char++里输入貌似不可以吧,因为只有变量才能进行自加或自减,如果想给argv[][]中输入多行字符,可以用cin>>*(argv++);用个循环控制

去掉string前N个字符,就让指针指向第N+1个字符(字符个数从1开始数)的地址,在输出就可以忽略前N个字符,只输出第N个字符及以后的字符

比如去点string前3个字符,就让string指向第4个字符d的地址
char *string="abcdef";
string=string+3;//地址偏移从0开始计算
cout<<string<<endl;
输出结果就是"def"

**是双重指针,这里的char **可以理解为字符串数组,char ** argv表示程序执行时的参数,比如程序叫abc.exe,那么执行的时候输入abc.exe -v 53t haha,那么argv就是含3个字符串的数组,argv[0]="-v",argv[1]="53t",argv[2]="haha",而argc=3。

指向指针的指针

一看就是C语言没基础

两个星号简单的说就是指向指针的指针

指向指针的指针