한 걸음 두 걸음

C프로그래밍 #03 주차 이러닝 정리 ] 연산자 응용 기본제어문 + 배열 본문

Language/C

C프로그래밍 #03 주차 이러닝 정리 ] 연산자 응용 기본제어문 + 배열

언제나 변함없이 2019. 7. 23. 16:58
반응형

01 연산자 응용

sizeof(자료형)

자료형인 int, double, char을 씁니다.
int nData;
sizeof(nData); //해주면 int의 크기인 4가 출력됩니다.
int nData[3]; sizeof(nData); // 해주면 int[3]의 크기인 12가 출력됩니다.

Alt+8 디스어셈플리 //머신코드를 확인합니다

A-B == 0 ?인지확인하여 두 수가 같은지 확인할 수 있습니다. (<=> A == B)
참 = 1 = true
거짓 = 0 = false

여기서 주의할 점! float, double로 연산할 때는 == 비교하면 오차가 있어 안됩니다! ->switch에서도 case '정수':로 쓰는게 좋다 (==연산을 하기 때문ㅇ)

논리연산자 && || !

식1(관계연산) || 식2(산술연산) && 식3
short Circuit 발생!(하지않아도 될 연산을 하지 않음으로서 성능을 향상시킵니다.)
연산은 왼쪽에서 오른쪽으로 갑니다.
이 때, A식 && B식 연산이 있는데 A가 틀렸으면 B식은 확인도 안합니다.

식 A,B,C가 있으면
A && B || C
(A && B)|| C 인데,
A가 틀리면 B는 안보고 바로 C가 true인지 확인한다.

!은 많이 쓰지 않는게 좋습니다.(논리적 실수를 할 가능성이 많이 깨문에.)

삼항연산자 ? : :

조건 ? true : false; 으로 사용하는 것입니다.

프로그램

성능 : 비교횟수(CPU사용량), 메모리사용량, 유지보수 용이성 등에 따라 결정됩니다.

02 기본 제어문

if문

분기하여 다양한 경우를 다룰 때 사용합니다.
다중 if문은 사용하면 연산량이 많이 늘어나므로 사용을 지양합니다.(최적화, 리팩토링 할 때는 다 없앱니다.
Lookup table배열을 사용하여 성능향상을 위해 쓰이기도 함 ㅋㅋㅋ 세상에;; 조건 100~200개일 땐 이렇게 인덱스를 사용하여
빠르게 사용합니다. )
디버그하기 : F9 = 브레이크포인트, F5 = 디버그모드 실행하기 F10 Step over 한 줄씩 내려가기

스택

스택의 원리로 변수의 값이 달라진다. (다중 if문 내에서 값이 변화하는 과정을 설명할 때 씀) 흠..

switch-case문

switch(□){
case□ :
break;

}

goto문은 안씁니다.

배열

int name[5]
= 자료형 = 식별자(이름) = 인덱스(크기)

식별자는 인스턴스입니다.  그리고 주소는 일련번호입니다. 같은 자료형을 연속된 메모리에 배치하면 배열이 됩니다. 같은 배열에 있는 것들은 그러므로 같은 주소값들을 가집니다. 위치(인덱스)를 통해 메모리를 나누어서 씁니다. 

배열의 이름이 주소(메모리의 주소, 기준주소)입니다 그러므로 int aList[3] = {0}; 에서 aList와 &aList와 aList + 0 과 aList +0  , aList[0]은 모두 같은 주소를 갖게됩니다.  (기준주소에 +인덱스를 더하면 = 상대주소가 된다.)

 

반응형