*argv[]argv는 주소이고, *argv[]는 주소가 가리키는 변수입니다. argv는 주소인데 왜 argv[1]을 이렇게 호출할 수 있나요
argv[1]은 *(argv+1)
int main(int argc, char *argv[]) 吧。其实你想这么写也完全没有什么问题的 int main(int argc, char **argv)에 대해 물어보셨을 텐데요.
int main(int argc, char *argv[])
int main(int argc, char **argv)
char *s = '2333',那这个 s 指的是什么?字符串的首地址吧。同理,*argv[1] 정의하면 무엇을 저장하나요? 첫 번째 문자열의 첫 번째 주소입니다. 간단히 이렇게 이해하면 되고, 더 깊게 알고 싶다면 책을 읽어보면 된다.
char *s = '2333'
s
*argv[1]
흥미롭네요~ 사실 가끔 이해하고 싶으면 쓰는 방식만 바꿔도 될 때가 있어요.
원작 포스터가 하고 싶은 말
에 *argv[] 맞죠?
*argv[]
char *argv[]是一个数组,数组的元素是char *,每一个char *都用于指向一个字符串的首地址。所以argv[1]就是指向第二个字符串的首地址(我们假设第一个字符串是argv[0])。所以说,argv[1] 역시 문자열의 첫 번째 주소인 주소입니다.
char *argv[]
char *
argv[1]
배열과 포인터는 함수 매개변수로 사용될 때만 동일하게 간주될 수 있으므로 char *argv[]也可以写成char **argv여기서는 이것이 더 이해하기 쉬운지 모르겠습니다.
char **argv
매개변수를 전달할 때의 유형은 *argv[]이며 이는 포인터에 대한 포인터인 **argv와 동일합니다
여기*argv[]定义的是指针数组,有n个指针类型的数组元素(argv[0],argv[1],...,argv[n])(argv[1]是指针数组的第2个元素,仍是一个指针,*(argv+1)는 포인터 배열의 두 번째 요소가 가리키는 값, 즉 값입니다. )
argv[0],argv[1],...,argv[n]
*(argv+1)
argv[1]是地址,具体怎么调用,要结合具体的上下文代码来分析。一般会把argv[1]放在另一个指针里int *p = (int*)argv[1];,然后下文*p取得*argv[1]의 가치.
int *p = (int*)argv[1];
*p
배열의 이름은 실제로는 주소이므로 이렇게 사용해도 아무런 문제가 없습니다.
C언어에서 배열은 원래 주소입니다
argv[1]은 *(argv+1)
과 동일합니다.int main(int argc, char *argv[])
吧。其实你想这么写也完全没有什么问题的int main(int argc, char **argv)
에 대해 물어보셨을 텐데요.char *s = '2333'
,那这个s
指的是什么?字符串的首地址吧。同理,*argv[1]
정의하면 무엇을 저장하나요? 첫 번째 문자열의 첫 번째 주소입니다. 간단히 이렇게 이해하면 되고, 더 깊게 알고 싶다면 책을 읽어보면 된다.흥미롭네요~ 사실 가끔 이해하고 싶으면 쓰는 방식만 바꿔도 될 때가 있어요.
원작 포스터가 하고 싶은 말
으아악에
*argv[]
맞죠?char *argv[]
是一个数组,数组的元素是char *
,每一个char *
都用于指向一个字符串的首地址。所以argv[1]就是指向第二个字符串的首地址(我们假设第一个字符串是argv[0])。所以说,argv[1]
역시 문자열의 첫 번째 주소인 주소입니다.배열과 포인터는 함수 매개변수로 사용될 때만 동일하게 간주될 수 있으므로
char *argv[]
也可以写成char **argv
여기서는 이것이 더 이해하기 쉬운지 모르겠습니다.매개변수를 전달할 때의 유형은 *argv[]이며 이는 포인터에 대한 포인터인 **argv와 동일합니다
여기
*argv[]
定义的是指针数组,有n个指针类型的数组元素(argv[0],argv[1],...,argv[n]
)(
argv[1]
是指针数组的第2个元素,仍是一个指针,*(argv+1)
는 포인터 배열의 두 번째 요소가 가리키는 값, 즉 값입니다. )argv[1]
是地址,具体怎么调用,要结合具体的上下文代码来分析。一般会把
argv[1]
放在另一个指针里int *p = (int*)argv[1];
,然后下文*p
取得*argv[1]
의 가치.배열의 이름은 실제로는 주소이므로 이렇게 사용해도 아무런 문제가 없습니다.
C언어에서 배열은 원래 주소입니다