[C언어] 이차원배열 더블포인터 관계
int a[4];in *p = a;일때 a[0] == p[0], a[1] == p[1] 이라고 하는 것을 보고 in a[3][4]; 일 때int **p =a;이고 a[0][0] == p[0][0], a[1][2]== p[1][2]로 알고 계시는 분들이 있으십니다.혹은 왜 이게 안되는지 궁급해 하십니다. 그래서 이런 글을 올립니다. 참고하세요 배열의 등가포인터 의미와 생성 그리고 활용에 대하여 다룹니다. 자 이런 배열이 있습니다int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12}; 이때 배열의 이름 a는 배열의 정의상 배열의 첫요소의 주소입니다. 그러면 이는 배열의 첫요소 즉, a[0][0]의 주소 즉, &a[0][0] 일까요?아니면 &a[0] 일까요? 값만 놓고 보면 둘 다 같은 ..
2016. 3. 24.
[C언어] sizeof 에 대해
sizeof 연산자(operator)를 사용합니다. 함수는 아닙니다. sizeof(array) 나누기 sizeof(array[0]) 이렇게 하면, 배열 요소 개수(number of elements in an array)가 구해집니다. sizeof(array) 로, 배열 전체의 바이트(Byte) 수를 구하고 sizeof(array[0]) 으로, 배열 첫번째 요소의 크기를 바이트 단위로 구합니다. 이것을 나누면, 배열의 요소 개수가 나옵니다. 다음 예제와 같습니다. sizeof 연산자로 배열 사이즈 계산 예제 소스 파일명: example.cpp #include int main(void) { int foo[] = { 519, 31, 7988, 165326, 10, -24642, 134 }; // 배열의 바이트..
2016. 3. 24.