"Learn C hard way"라는 책에서이 코드를 발견했습니다.이 코드의 의미는 다음과 같습니다. for (i = 0; argv [1] [i]! = ' 0'; i ++)
-5
A
답변
3
기본 문자열의 첫 번째 문자 포인터 배열의 첫 번째 요소 argv
점이다
int main(int argc, char ** argv)
동등
int main(int argc, char * argv[])
같이 선언 .
따라서 argv[1]
은 두 번째 매개 변수의 첫 번째 문자 (첫 번째 매개 변수는 프로그램 이름)에 대한 포인터입니다. 예를 들어 *argv[1]
또는 argv[1][0]
은 0으로 종료되는 문자열의 첫 번째 문자입니다. 예를 들어
프로그램이 다음 명령 줄 매개 변수 문자열 "Hello"
같은 프로그램에 전달됩니다
your_program Hello
처럼 실행합니다. 그리고이 루프
for(i=0;argv[1][i]!='\0';i++){
char letter=argv[1][i];
은 종료 영점이 발생할 때까지 문자열을 탐색합니다.
당신은 출력 문자 모든 매개 변수 문자 다음과 같은 방법#include <stdio.h>
int main(int argc, char * argv[])
{
for (int i = 0; i < argc; i++)
{
for (int j = 0; argv[i][j] != '\0'; j++) putchar(argv[i][j]);
printf("\n");
}
return 0;
}
-1
프로그램에 전달 된 인수의 각 문자에 대해 해당 값을 갖는 letter라는 변수를 만듭니다.
다음 순환 행에 사용되는 것으로 생각됩니다.
0
argv[1]
문자열 배열 argv
두 번째 문자열이며, argv[1][0]
번째 문자열에서 첫 문자하므로 문자열의 문자 배열이다 argv[1][1]
번째 문자열 등의 번째 문자이다. 표준 C에 따른 매개 변수
+0
argv [1]이 첫 번째 매개 변수이기 때문에주의하십시오. argv [0]은 프로그램 이름입니다 – Wallkan
는 전체 책을 읽을 수 있습니다, 당신은 이해할 수있을 겁니다. – alk
이 코드는 불완전하고 의미가 없습니다. –
정확히 이해하지 못합니까? 루프 구조? 배열 첨자? 루프 내의 선언? –