대체 배열 이름이 무엇이건데..
말하는 사람마다 하는 말이 다 다름??
나는 배열이름은 상수 포인터로서 배열의 첫번째 요소를 가르키며,
가르키는 대상을 바꿀수 없다..라고 알고 있음.
단 sizeof연산자에 배열 이름 때려 박으면 배열 전체 크기가 나온다.
...이상이 내가 알고 있는 배열이름.
횽들은 어떻게 생각해?-_-?
아니면 늅늅거리는 뉴비를 위한 포인터 서적 추천때려줘;;
그래서 결론: 늅늅
덧: 그리고 상수말인데..상수도 쓸때는 메모리에 올려지는걸로 아는데..
변수처럼 값을 못 바꿀 뿐이지..
말하는 사람마다 하는 말이 다 다름??
나는 배열이름은 상수 포인터로서 배열의 첫번째 요소를 가르키며,
가르키는 대상을 바꿀수 없다..라고 알고 있음.
단 sizeof연산자에 배열 이름 때려 박으면 배열 전체 크기가 나온다.
...이상이 내가 알고 있는 배열이름.
횽들은 어떻게 생각해?-_-?
아니면 늅늅거리는 뉴비를 위한 포인터 서적 추천때려줘;;
그래서 결론: 늅늅
덧: 그리고 상수말인데..상수도 쓸때는 메모리에 올려지는걸로 아는데..
변수처럼 값을 못 바꿀 뿐이지..
책 알려줬잖아
함수에서 파라미터로 받으면, 배열 전체 크기 잘 나올걸.
함수만들때 배열크기 받으려면 sizeof(배열이름)/sizeof(배열자료형)으로 크기 넘겨야 되는거 아니냐능
아놔...배열이름은 상수 포인터가 아니라 심볼이라니깐... 포인터변수는 말그대로 메모리 영역에 주소값을 써넣는 거고, 심볼은 컴파일할 때 컴파일러가 파싱 과정에서 심볼 테이블을 만든 뒤에, 심볼이 나올 때마다 값을 치환해서 쓰는거다...프로그래머가 주소값을 일일이 지정해줄 수는 없잖아.. 마찬가지로 함수 이름도 비슷한 거고... 정리하면(?) 포인터는 메모리에 잡히지만 배열 이름은 메모리에 따로 올라가지 않는다. 고로 다르다. &배열이름 하면 메모리에 \'배열이름\' 이 올라가 있는게 없으니 에러가 나오는거고..
배열 이름이 가르키는 곳을 바꿀 수 없는 이유는(이것도 말이 좀 이상하지만..어쨌던..) 상수 포인터이기 때문이 아니라, 컴파일타임에 주소 값이 계산 되고, 이 값이 명령어 곳곳에 박히기 때문에...(릴로케이션 정보도 없고) 로딩,수행중에는 변경될 수가 없기 때문이라능
배열의 이름은 컴파일 단계에서 주소로 변경됨, 됐심?
배열은 스택에 쌓이지도 않고, 힙메모리도 아니고, 그냥 파일에 적혀있어
어라 리플이 왜 저리 달렸지. 잘 안 나올걸 인데