본문 바로가기
정보처리기사

흥달쌤 깨알 C언어 41~60강 + 깨알특강 1~2 스터디 노트

by mihsyeh 2022. 4. 14.

41~42, 44~48. 함수에 주소 전달

change 함수

%3.1f - 소수점아래 한자리까지


43. 함수가 주소를 리턴


49~52. STATIC 변수

  • 정적변수, 공유하고 있는 변수
  • 단 한번만 초기화하고, 그 이후에는 전역변수처럼 프로그램 종료까지 메모리공간에 존재하는 변수
  • 초기값 지정이 안되면 자동으로 0이 대입

53~57. 재귀함수

  • 함수 내에서 자기의 함수를 다시 호출하는 함수
  • 스택 내에 차곡차곡 쌓아두었다가 일괄로 처리를 한다.

옛날 다단계메뉴 만들때 쓰고 요즘엔 잘 안씀 저슽 시험용 ㅡㅡ

박스에다 하나하나 쌓기.... 미친놈이네....

정수 나누기 정수는 정수

연산식 없으면 박스에 안넣고 바로 호출 ㄱㄱ


58~60. 중복 재귀함수

피라미드 그리기..... 더미친놈이네 

 


 

깨알 C언어 특강

1. printf 출력순서

int i = 5;
printf("&d, &d, &d, &d", i++, ++i, i++, ++i);
printf("&d, &d, &d, &d", i--, --i, i--, --i);
printf("&d, &d, &d, &d, %d", i--, --i, i--, i, --i);

printf는 뒤에서부터 연산이 시작됨
그냥 i와 선위증감자는'출력'이라는 연산을 만날때의 i 값 참고..... "연산을 했을 당시의 값"
후위는 바로


1, 3, 4, 1

 


 

2. ++가 연속으로 있을 때 처리

int i = 5;
int z = i++ + i++ + i++;
printf("%d, %d", i, z);

5 + 6 + 7
= 18

i = 8
z = 21

8, 18
int i = 5;
int z = ++i + ++i + ++i;
printf("%d, %d", i, z);

i + i 
> 7 + 7 = 14
> 14 + 8
= 22

i = 8
z = 22

8, 22
int i = 5;
int z = ++i + i++ + ++i;
printf("%d, %d", i, z);

i + 6
> 7 + 6 = 13
> 13 + 8
= 21

i = 8
z = 21

8, 21

 

 

댓글