배열(array)
동일한 하나의 데이터형을 가진 연속된 원소들로 구성된다.
[] 배열이라는 것을 나타낸다.
candy[0] 0은 인텍스(index)이다.
인덱스는 0부터 시작하다.
지정 초기화자(designated initializer)
초기화 리스트에서 각괄호 안에 인덱스를 사용하여 특정 원소를 초기화 하도록 지정할 수 있다.
int arr[6] ={[5] = 212};
포인터와 배열
포인터는 주소를 기호적으로 사용할 수 있는 방법을 제공한다.
flizny == &flizny[0]
flizny 와 &flizny[0] 둘다 첫번째 원소의 메모리 주소
대입하기
포인터에 주소 대입
값 구하기(역참조)
*연산자는 그것이 참조하는 주소에 저장되어 있는 값을 구한다.
포인터 주소 얻기
포인터 변수는 하나의 주소와 하나의 값을 가진다.
&연산자는 포인터 자체가 어디에 저장되어 있는지를 알려준다.
포인터에 정수 더하기
+연산자를 사용할 수 있다.
정수는 포인터가 가리키느 ㄴ데이터형의 바이트 수만큼 곱해진다. 그 결과가 최초의 주소에 더해진다.
포인터 증가시키기
배열의 한 원소를 가리키는 포인터를 증가시키면, 그 포인터가 배열의 다음 원소를 가리킨다.
그 타입의 크기만큼 증가 시킨다.
포인터에서 정수 빼기
포인터에서 정수를 빼기 위해서 -연산자를 사용할 수 있다.
정수는 포인터가 가리키는 데이터형의 바이트 수만큼 곱해진다.
그 최초의 주소에서 그 결과가 감해진다.
포인터 감소시키기
증가 연산자와 감소 연산자의 전위모드와 후위모드 둘다 사용할 수 있다.
포인터 사이의 차 구하기
두 포인터 사이의 차를 구할 수 있다.
포인터 비교하기
두 포인터가 같은 데이터형을 가리키는 경우에 두 포인터의 값을 비교하기 위해 관계 연산자를 사용할 수 있다.
const
컴파일러에게 상수 데이터를 포함수고 있는 것처럼 다루어야 한다고 지시한다.
원본 배열이 반드시 상수일 필요는 없다.
포인터 호환성
int 형 값을 데이터형 변환 없이 double 형 변수에 대입할 수 있지만, 두 데이터형을 가리키는 푄터들은 그렇게 할 수 없다.
가변 길이 배열(VAL)
배열의 길이를 변경할 수 있는 것이 아니라 처음 지정할 때 변수를 사용할 수 있다는 뜻이다.
가변 길이 배열은 동적 메모리 할당을 허용한다.
'primer plus' 카테고리의 다른 글
[c primer plus] chapter11 문자열과 문자열 함수 (1) | 2023.01.12 |
---|---|
[c primer plus] chapter08 문자 입출력과 입력 유효성 검사 (0) | 2023.01.05 |
[c primer plus] chapter09 함수 (0) | 2023.01.05 |
[c primer plus] chapter07 C의 제어문: 분기와 점프 (0) | 2023.01.03 |
[c primer plus] chapter05 연산자, 표현식, 문장 (0) | 2023.01.02 |