[4주차] C언어 문제 및 개념 정리
본문 바로가기

카테고리 없음

[4주차] C언어 문제 및 개념 정리

(가) 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]같은 음수 인덱스를 쓸 수 없음 -> 배열 범위를 벗어나면 정의되지 않은 동작

-> 실행 환경에 따라, 쓰레기 값이 나오거나 / 프로그램이 크래시(세그폴트)하거나 / 우연히 맞는 것 처럼 보이는 값이 찍힐 수도 있음