argv[][]로 선언하는 것과 **argv둘은 완전 같은 것인가요?
글쓴이: fhdaos10 / 작성시간: 수, 2013/11/06 - 9:40오후
문자열을 표현할 때
1. 문자배열을 이용
2. 문자형포인터 이용
이렇게 두가지 방법이 있는데 이 둘은 비슷한 기능을하지만 엄연히 다르지 않나요.
그러면 argv[][]와 **argv도 서로 다른표현아닌가요? 근데 스타일에 따라 *argv[] / argv[][] / **argv 이렇게 셋중에 하나를 쓰던데 그럼 결국
문자배열이나 문자형포인터 둘다 같다는 소리아닌가요?
예전에 공부할 때 얼핏 기억나는 것이 *와 배열의 []가 같다고 보면된다고 하던데...
혼란스럽군요;;
Forums:
yes
yes
세벌 https://sebuls.blogspot.kr/
...
**argv는 이중 포인터입니다.
*argv[] 이것은 괄호를 따로 치지 않으면 *(argv[])가 되는데 이는 "포인터의 배열"을 의미합니다. 변수를 선언할 때는 전혀 다른 의미이지만 함수 인자로 받을 때에는 **argv와 같습니다.
argv[][]는 어디서 쓰든 잘못된 문법입니다. 두번째 [] 안에 상수를 넣어주지 않으면 컴파일이 되지 않습니다.
* C11의 경우에는 찾아보니 argv[][len] 처럼 두번째에 변수를 넣는 것도 되기는 되는 것 같습니다만 써보질 않아서 자세히는 모르겠네요.
http://stackoverflow.com/questions/14548753/passing-a-multidimensional-variable-length-array-to-a-function
댓글 달기