20 - 배열
int a[5]
- 배열은 인덱스 하나당 자료형 크기만큼 차지 (int형 4byte, 4 * 5 = 20byte)
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}
- 반복문을 사용하여 배열의 길이만큼 반복 조건을 선언하고 싶을 때
>> sizeof(arr) / sizeof(int) (0부터 시작했을 시 -1을 넣어줌)
23 - 문자열
char arr[] = " " 이런식으로 사용
- 배열의 크기는 널문자("\0") 때문에 +1이 됨
문자열 출력타입은 %s
- scanf 사용시 앰퍼샌드(&)가 필요없다.
문자열 크기 구하기
- sizeof(arr) / sizeof(char) - 1 (null문자의 크기까지 나오기 때문에 -1을 사용)
24 - 변수 가리키기 (포인터)
포인터
- 변수의 주소를 저장하는 변수
#include <stdio.h>
int main() {
int a = 20;
int *ptr_a = &a;
printf("a의 값 : %d\n", a); // 20
printf("a의 주솟값 : %d\n", &a); // a의 주소값 1636216
printf("ptr_a에 저장된 값 : %d\n", ptr_a); // a의 주소값 1636216
printf("ptr_a가 가리키는 변수의 값 : %d\n", *ptr_a); // 20
}
#include <stdio.h>
int main() {
int a = 20;
int *ptr = &a;
int **ptr_ptr = &ptr; // 포인터를 가리키는 포인터( 포인터의 주소를 저장하는 포인터)
printf("a = %d\n", a); // 20
printf("&a = %d\n", &a); // 100
printf("ptr = %d\n", ptr); // 100
printf("&ptr = %d\n", &ptr); // 200
printf("ptr_ptr = %d\n", ptr_ptr); // 200
printf("*ptr_ptr = %d\n", *ptr_ptr); // ptr에 저장된 값 100
printf("ptr_ptr = %d\n", **ptr_ptr); // *ptr은 a의 값 20
}
'Programming > C' 카테고리의 다른 글
prototype (0) | 2020.02.18 |
---|---|
포인터 배열 정리 (0) | 2020.02.18 |
2차원 배열과 배열 포인터 정리 (0) | 2020.02.17 |
배열과 포인터 정리 2 (0) | 2020.02.14 |