【发布时间】:2021-03-25 10:27:41
【问题描述】:
我只是想知道使用之间是否有区别
for(i = 0; i < sizeof(argv[1]) / sizeof(argv[1][0]); i++) {
和
while (argv[1][i] != '\0')
我只是好奇,我找不到任何关于它的信息。
(目标是putcharchar*的每个字符)
【问题讨论】:
-
sizeof(argv[1])是指针的大小。argc告诉你数组*argv[]的长度。 -
@WeatherVane 看起来 OP 正在寻找单个参数的长度,而不是它们的数量
-
要获取
argv[1]的长度,请使用strlen(argv[1]) -
你需要了解指针和数组的区别。如果你从
main()得到argv,它是指向char的(数组)指针(数组)的指针。argv[1]是一个指针,sizeof argv[1]将返回指针的大小,而不是数组。 -
while (argv[1][i] != '\0')与while (argv[1][i])相同
标签: c pointers char sizeof c-strings