sizeof 질문입니다~
망고
sizeof 질문입니다~배열의 sizeof를 구할 때 애매한 부분이 있습니다.질문 내용 :
#includestdio.h
void func(int ia);
main()
{
int ia[10]={0};
printf(%d\n,sizeof(ia));
func(ia);
}
void func(int ia)
{
printf(%d\n,sizeof(ia));
}이때의 출력값은...
40
4
입니다.(int형이 4byte라고 가정)
그런데... ia라는 배열명을 단독으로 사용하였을땐 그 배열의 시작을 가리키는 주소이다.
라고 알고있습니다. 그렇다면....ia를 단독으로 사용하면 배열의 처음번지...즉 sizeof 로는 4가 나와야 되지 않나요??
함수로 넘겨준다음의 출력값이 4가 나오는건 이해가 가지만...처음의 40은...생각 밖이네요;
전 sizeof(ia[10]) 이 40인줄 알았거든요;;
다른 분들의 생각은 어떤지 알고싶네요~
-
흰꽃
배열의 길이를 알고싶을때 이런식으로 쓸수 있죠
int len = sizeof( ia ) / sizeof( ia[0] )
이걸 잘뜯어보면 알 수 있죠
뒤에 나눌건 0번째든 10번째든 상관이 없다는
즉
int len = sizeof( la ) / sizeof( ia[10] )
이렇게 써도 길이를 구합니다. -
딥블루
일반적인 책들에서도 배열의 이름은 배열의 이름일 뿐 어떤 변수같은게 아니라고 알려주긴 할텐데요...
(물론 사용은 마치 첫번째 주소처럼 사용하지만...) -
안녕나야
아...그런 제외사항이 있었네요ㅎㅎ
배워갑니다~감사합니다~~ -
뿌닝
배열은 배열이지, 시작 주소가 아닙니다.
시작 주소로 취급(계산,변환)된다가 옳은 표현일듯 싶습니다.
la 는 int 10 묶음을 나타내는 배열입니다.
배열명은 sizeof와 &연산자에는 배열 묶음을 나타내는 원래의 배열로 취급되지만,
그 외에는 모두 배열의 첫번째 요소가 저장된 메모리의 주소로 처리됩니다.
sizeof(la) == sizeof( int[10])
int *p = la; // int 가 저장된 주소
int (*p)[10] = & -
초월
흠...님께서 말씀하신 부분이 맞는것 같네요~^^
ia[0]~ia[9]까지 생성되니...전...배열은 항상 이부분이 헷갈리네요; -
VE
그러게요 . 하지만 sizeof(ia[10])은 배열이 있나여? 9까지 생성되는거 아닌가여??
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2669136 | 리눅스에서 argv의 인자값 출력 관련 질문입니다. 급해여 ㅠㅠ | 덕이 | 2024-09-21 |
2669081 | strcpy와 포인터관련 질문 (7) | 꽃여름 | 2024-09-20 |
2669052 | 컴터 교과서 책에 잇는거 처럼 치는게 안되네요 헬프! | 화이트캣 | 2024-09-20 |
2669026 | 초보프로그래머가 도전프로그래밍문제를 풀다가.. (1) | 독특한 | 2024-09-20 |
2669003 | 다음 소스에서 qosrt를 뺏을때 값이 차이가 나는 이유 | 반월 | 2024-09-20 |
2668976 | 제곱승을 구하는 것 (1) | 소유 | 2024-09-20 |
2668949 | 님들 이거 도데체 뭐틀린건지좀 알려주세요. | 큰재 | 2024-09-19 |
2668901 | for문 한개로 속 빈 다이아 만들기 | 키클 | 2024-09-19 |
2668873 | 재귀 알고리즘을 재귀 없이 만드는 방법 (3) | 희1미햬 | 2024-09-19 |
2668843 | 형변환에 대해 질문좀 드립니다. | PrinceSs | 2024-09-18 |
2668761 | C언어로 어떻게 게임을 코딩하죠? (3) | 큰꽃 | 2024-09-18 |
2668733 | C언어 초봅니다. ㅜㅜ 간단한 이 코드 보시고 주석 좀 달아주실 수 있을까요? | 꽃은별 | 2024-09-17 |
2668702 | api 문서.. (1) | 너만을 | 2024-09-17 |
2668669 | [C]%3d란 무슨의미를 가지나요? | 독특한 | 2024-09-17 |
2668615 | 2차방정식 근 구하는 프로그램 질문입니당 ㅠ (1) | 삐용삐용 | 2024-09-16 |
2668560 | fgets함수 출력할때.. | 민트맛사탕 | 2024-09-16 |
2668508 | c언어 공부법~~ | 옆집오빠야 | 2024-09-15 |
2668460 | 2차원배열 사용자정의 함수이용하여 동적할당 (1) | 울트라 | 2024-09-15 |
2668434 | 반석차랑 전체석차 어케 구하죠? | 내꺼하자 | 2024-09-15 |
2668412 | return 용도 | 유리 | 2024-09-14 |