写了如下这段代码,竟然被成功编译通过,并执行了。没搞明白为什么会编译通过?? environ[index] 难道是两个值? 一个整数,一个字符串对象?
printf("envv[%d] is %s\n",environ[index]); //可以看到两个输出,但只有一个变量。
结果如下,而且每次运行结果还不一样
envv[833390] is (null)
光从结果看,我还以为index的运算出了问题。实际上是少了一个变量。
printf("envv[%d] is %s\n",index, environ[index]); //OK。
本文探讨了一段C语言代码的编译问题,该代码使用printf函数打印environ数组元素,由于变量类型不匹配导致的编译通过及运行结果异常现象。通过修正代码,明确了正确调用printf的方法。

被折叠的 条评论
为什么被折叠?



