-5
當我打印argv值20次時,我得到如下所示的輸出爲什麼?請解釋打印ARGV []的20個值我得到這個輸出請解釋爲什麼?
int main(int argc,char **argv)
{
int i;
for(i=0;i<20;i++)
printf("%s\n",argv[i]);
}
輸出:
./a.out a
a
./a.out
a
(null)
SHELL=/bin/sh
TERM=xterm-color
USER=root
SUDO_USER=hari
SUDO_UID=501
SSH_AUTH_SOCK=/tmp/launch-Jm4kQ0/Listeners
__CF_USER_TEXT_ENCODING=0x0:0:0
USERNAME=root
PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Applications/gedit.app:/Users/hari/Downloads/gradle-1.9/bin:/usr/X11/bin
PWD=/Users/hari/Desktop/Cerner/Pointer
SHLVL=1
SUDO_COMMAND=/usr/bin/su
HOME=/var/root
LOGNAME=root
LC_CTYPE=UTF-8
SUDO_GID=20
DISPLAY=/tmp/launch-DMwOKd/:0
當超出'argv [argc]'的讀數未定義時的行爲。什麼事情都可能發生。您的系統似乎打印出環境變量;別人可能會崩潰。 – simonc
恭喜你遇到**未定義行爲**! – P0W
argc有一個存在的理由...在C數組中綁定檢查是程序員的責任。你最好學習堆棧溢出的問題,點擊一個未定義的行爲C被獎勵準自動與-1 ...對不起。 –