[관계연산자]------------------------------------------
<
>
== 둘이 같은가? : 같으면 참
!= 둘이 서로 다른가? : 다르면 참
<=
>=
[논리연산자]------------------------------------------
&& A,B모두 참이면 연산결과는 참으로 반환한다 (논리 AND)
|| A.B둘중 하나라도 참이면 연산결과로는 참을 반환 (논리 OR)
! 예를들어서 !C 이면 C가 참이면 거짓을 반환 거짓이면 참을 반환하는 형태 즉, 논리 NOT
[비트연산자]
대상으로 하는 자료를 비트단위로 생각하고 연산을 실시한다.
& 비트단위로 AND연산
| 비트단위로 OR 연산
^ 비트단위로 XOR연산
~ 단항 연산자로써, 모든 비트를 반전시킴
<< 비트열을 왼쪽으로 이동시킴
>> 비트열을 오른쪽으로 이동시킴
[음수의 표현법]------------------------------------------
1의 보수를 취한다 -> 1을 더한다.
[기본적인 반복문의 형태: While문]------------------------------------------
While(조건)
{
내용; //내용실행후 조건으로 다시 이동후, 조건이 부정되지 않으면 중괄호 내용 다시 실행
}
while(조건1)
{
내용1;
while(조건2)
{
내용2; //일단 내용1을 1번 실행후 조건2가 부정될때까지 내용2를 실행후 다시 조건1로 회귀.
}
}
do
{
내용; // 일단 do 실행. 그 후 while 조건을 검토후 조건이 부정되지 않으면 다시 do실행.
}while(조건); // 세미콜론 주의.
do~while 과 while문은 실제로 서로 대체가 가능한 문법이다.
하지만 눈에 보이는 전달력의 차이로 꼭 1번 실행이 필요하다면 do~while로 표현하는것이 가독성을 위해서 추천한다.
[For 문의 형태]------------------------------------------
for( 초기식 ; 조건식 ; 증감식)
{
내용;
}
으로 이루어져 있으면, 초기식은 변수의 선언 및 초기화, 조건식은 선언된 초기식조건을 이용하여 검사 (부정이면 반복중단), 증감식은 내용을 실행후 다시 조건식을 검사하였을 때, 조건식이 부정되지 않으면 조건의 변수를 증가시킴.
예를들면,
for( int i=1; i<5; i++)
{
printf("good"); //4번의 good이 결과 출력된다.
}
[조건문의 형태]------------------------------------------
if(조건)
{
내용; // 조건이 참이면 아래 중괄호의 내용을 실행한다.
}
if(조건)
{
내용1; //조건이 참이면 내용1을 실행, 아니라면 내용2를 실행
}
else
{
내용2;
}
if(조건1)
{
내용1; //조건1을 검사하여 참이면 내용1 아니라면, 다시 조건2를 검사 맞으면 내용2, 그밖에 조건이면 else문 실행
} //만약 조건1이 만족하면 그밖의 else if, else는 건너뛴다.
else if(조건2)
{
내용2;
}
else
{
내용3;
}
if(조건1)
{
내용1; //조건1,2,3중에서 만족하는 조건만 실행, 그밖의 조건과 실행이라는건 없음.
} // 만약 조건1이 만족하면 내용1을 실행시키지만, 조건2,3도 if문이라서 다시 조건검사를 한다. 건너뛰지 않는다.
if(조건2)
{
내용2;
}
if(조건3)
{
내용3;
}
*삼항 연산자의 경우*
이는 if~else문을 대체 할수가 있다.
(조건) ? (A) : (B);
해석) 조건이 참이면 A를 반환, 거짓이면 B를 반환하라.
[반복문의 탈출]------------------------------------------
break문은 가장 가까운 중괄호의 반복문 한개를 빠져나오게 하는 명령이다. (단 하나만!)
continue문은 반복문의 조건검사로 즉시 이동하라는 명령이다. 즉 continue 뒤의 문장은 실행하지 않는다.
[선택문]------------------------------------------
switch(입력받은수)
{
case 1:
내용1;
break;
case 2:
내용2;
break;
case 3:
내용3;
break;
default:
내용4;
}
입력받은수가 1~4까지라고 할때, 해당하는 수에 맞는 case문을 실행한다.
만약 break; 가 없다면 다음 case문도 실행된다.
If~ else 문과 switch 문은 서로 유사하지만 분기가 많고 복잡하다면 주로 switch문을 이용하는것이 좋다.
[함수의 형태]------------------------------------------
반환형태 함수이름 (입력형태)
{
함수의 몸체;
}
*이름이 같을때, 우선순위
지역변수 > 전역변수
Void 재귀(void)
{
printf("재호출=n");
재귀();
}
// 재귀함수는 함수가 호출되면 복사본을 만들어서 실행되는 구조라고 이해하자. 즉, 계속 호출될때마다 원본은 나두고 계속 복사본을 만들어서 실행하는 것이다.
재귀 함수의 디자인사례)
#include <stdio.h>
int Factorial(int n)
{
if(n==0)
return 1;
else
return n * Factorial(n-1);
}
int main(void)
{
printf("1! = %d \n", Factorial(1));
printf("1! = %d \n", Factorial(2));
printf("1! = %d \n", Factorial(3));
printf("1! = %d \n", Factorial(4));
return 0;
}
//결과 1! = 1 2! = 2 3! = 6 4! = 24
'Engineering > C Language' 카테고리의 다른 글
[C언어] 구조체사용하기 (0) | 2014.01.16 |
---|---|
[C언어] 포인터 사용하기-2 (0) | 2014.01.15 |
[C언어] 포인터 사용하기-1 (0) | 2013.11.30 |
[본문스크랩] 인텔 헥사 파일(Intel HEXA File)의 구조 (0) | 2012.11.22 |
[C언어] 평균값필터, moving average (2) | 2012.11.01 |