포인터를 활용한 1/2차원 배열의 값과 주소
학습목표
1차원 배열의 값과 주소에 대해 이해하고 여러 가지 형태를 사용하여 출력할 수 있다.
2차원 배열의 값과 주소에 대해 이해하고 여러 가지 형태를 사용하여 출력할 수 있다.
지난 시간에 이어 2차원 배열에 대하여 수업을 해 보아요. \=_=/ \=_=/
시간이 남아 퓨전...(드래곤볼 참조)
퓨... \=_=/ \=_=/
전... o-(=_=)o- -o(=_=)-o
합... /=_=/ \=_=\
배열에서 배열의 이름자체는 배열의 주소 값을 나타낸다.
ex) A[5]; printf("%p", A); -> A의 주소 출력
int A[5]라는 배열이 있다고 하면,
A는 주소 값으로써 상수이고 p는 주소 변수이다.
p가 변수임을 확인해 보자.
p는 대입연산자(=)를 활용하여 그 값을 변할 수 있는 주소 변수임을 알 수 있다.
하지만 배열 A 또는 B는 주소 값을 나타내는 주소 상수로써 값을 변화 시킬 수 없다.
변수와 상수의 차이라는 점을 제외하고는 배열의 이름과 주소 상수는 똑같이 사용할 수 있다.
/*** 네트워크 삼천포 ***/
natservice가 있을 때 이것을 삭제해야 컴퓨터가 정상적으로 가동한다.
삭제하는 방법 http://todaki.tistory.com/2646
각설! 네트워크 삼천포 break;
--------------------------------------------------------------------------
배열의 타입은 int[X]이다. // X는 선언 시 입력한 상수.
const를 어떻게 쓰느냐에 따라 고정되는 값이 다르다.
포인터 변수 int * p에서,
const를 * 앞에 붙이면 *가 가리키는 값을 수정할 수 없고,
const를 변수명 바로 앞에 붙이면 가리키는 주소 값을 바꿀 수 없게 된다.
2차원 배열로 넘어가서,
우선 for문을 사용하여 값과
차원수만큼의 대괄호([])가 있으면 그것은 값을 뜻한다.
차원수만큼의 포인터(*)가 있으면 그것은 값을 뜻한다.
그러므로 대괄호의 역할을 포인터가 할 수 있다. 또한 포인터의 역할을 대괄호가 할 수 있다.
정리하면 대괄호의 수 + 포인터의 수 = 차원수 가 되면 값을 뜻한다.
대괄호의 수와 포인터의 수가 차원수보다 작게 되면 그것은 주소를 뜻한다.
코드와 결과 값!
/*** 2dimArry.c ***/
#include <stdio.h> |
'Busan IT > 공장내 Network' 카테고리의 다른 글
다중 포인터 & 라즈베리파이 사용자 계정으로 root계정 변환 (0) | 2015.04.20 |
---|---|
포인터와 3차원 배열 (0) | 2015.04.17 |
다차원 배열의 값과 주소 (0) | 2015.04.15 |
구조체와 사용자 정의 자료형 (0) | 2015.04.14 |
Linux 기초 및 구조체의 메모리 구조 (0) | 2015.04.13 |