(가) idx2
(나) nx
(가) %
(나) 10
qwe
Art
A
A
Art
Art
p = a; -> p는 a[0] ('A')를 가리킴
C에서 배열 이름은 대입이나 함수 인자로 쓰일 때, "배열의 첫 번째 원소 주소"로 변환(decay)된다.
즉, a는 &a[0]와 동일하게 취급된다.
*p와 *a는 모두 첫 글자 'A'를 의미
*p == 'A'
p+1 -> 'r'
p+2 -> 't'
24+12+1 = 37
arr는 int형 포인터(int*)를 원소로 가지는 배열, 즉 arr[0], arr[1], arr[2] 각각 int* 타입
*arr = arr[0] = &a
**arr = *(&a) = a = 12 <- arr[0]이 가리키는 값 (a=12)
5*4*3*2*1=120
KOREA
EA
K
E
M
*p = p[0] = 'K'
*p+2 = 75+2=77='M' (아스키 코드 계산)
200+30+4 = 234
분기 조건이 3이므로 case 3부터 실행 시작, break;가 없으므로 계속 아래로 fall-through
c = 0 -> 3 -> -7 -> -8
출력값 : -8
- break이 없으면 아래로 계속 떨어진다 (fall-through)
- 원하는 case만 실행하고 싶으면 반드시 break를 넣어야 한다
- break를 조절해서 "연속 동작"을 만들 수도 있다
n[(i+1)%5]
C언어에서는 n[-1], n[-2]같은 음수 인덱스를 쓸 수 없음 -> 배열 범위를 벗어나면 정의되지 않은 동작
-> 실행 환경에 따라, 쓰레기 값이 나오거나 / 프로그램이 크래시(세그폴트)하거나 / 우연히 맞는 것 처럼 보이는 값이 찍힐 수도 있음