考虑到scanf在Microsoft文档中有(const char *),以及对此问题的回答,如果我将(char **)提升为(const char **),会发生什么?基本上为什么这会编译?
#include <stdio.h>
int main(int argc, char **argv)
{
char szArray[50];
int i = 0;
strcpy(szArray,"10");
/* the following code is upcasting the (char *) to (const char *) */
sscanf(szArray,"%d",&i);
return 0;
}
为什么这个无法编译?
#include <stdio.h>
void processargs(const char **p)
{
}
int main(int argc, char **argv)
{
processargs(argv);
return 0;
}
两者似乎对指针做了相同的事情!