c++ - C 언어의 포인터 문제
给我你的怀抱
给我你的怀抱 2017-06-30 09:57:22
0
7
997

*argv[]
argv는 주소이고, *argv[]는 주소가 가리키는 변수입니다.
argv는 주소인데 왜 argv[1]을 이렇게 호출할 수 있나요

给我你的怀抱
给我你的怀抱

모든 응답(7)
曾经蜡笔没有小新

argv[1]은 *(argv+1)

과 동일합니다.
我想大声告诉你

int main(int argc, char *argv[]) 吧。其实你想这么写也完全没有什么问题的 int main(int argc, char **argv)에 대해 물어보셨을 텐데요.

char *s = '2333',那这个 s 指的是什么?字符串的首地址吧。同理,*argv[1] 정의하면 무엇을 저장하나요? 첫 번째 문자열의 첫 번째 주소입니다. 간단히 이렇게 이해하면 되고, 더 깊게 알고 싶다면 책을 읽어보면 된다.

으아악

흥미롭네요~ 사실 가끔 이해하고 싶으면 쓰는 방식만 바꿔도 될 때가 있어요.

Ty80

원작 포스터가 하고 싶은 말

으아악

*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언어에서 배열은 원래 주소입니다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿