콘솔 입출력2
본 자료는 3페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
해당 자료는 3페이지 까지만 미리보기를 제공합니다.
3페이지 이후부터 다운로드 후 확인할 수 있습니다.

목차

8. 콘솔 입출력

9. 화일 입출력

10. 구조체와 공용체

본문내용

file.prj
file1.c file2.c
Project - Project name ==> file.prj
예. static의 사용
#include
void f(void);
main()
{
int i;
for(i=0; i<5; i++)
f();
}
void f(void)
{
static int count = 0;
count++;
printf("count is %d\n", count);
}
프로그램의 결과:
count is 1
count is 2
count is 3
count is 4
count is 5
11.5 비트 연산자
비트끼리 연산하는 3가지 연산자가 존재한다.
& : 비트끼리의 AND
| : 비트끼리의 OR
^ : 비트끼리의 XOR(eXclusive OR)
~ : 1의 보수
예. i = i ^ 21987 ;
예. d = 0x1234; /* 16진수 */
d = d & 0xFF00; /* 하위 16비트를 0으로 만든다. */
** 이 연산자들은 문자형과 정수형에서만 사용
11.6 시프트 연산자
비트들을 왼쪽 혹은 오른쪽으로 이동시킨다.
형식:
variable << interger-of-bits /* 왼쪽 시프트 */
variable >> interger-of-bits /* 오른쪽 시프트 */
interger-of-bits는 변수 내의 비트를 이동시킬 회수를 나타낸다.
** 문자나 정수형 피연산자에만 적용된다.
왼쪽 시프트: 매번 오른쪽 끝을 0으로 채운다. 이것은 2를 곱하는 효과를 나타낸다.
오른쪽 시프트: 양수인 경우, 매번 왼쪽 끝을 0으로 채우고,
음수인 경우, 매번 왼쪽 끝을 1로 채운다.
이것은 어느 경우에서나 2로 나누는 효과를 나타낸다.
예. unsigned u;
u = 45678;
u = u << 1;
u = u >> 1;
11.7 ? 연산자
3항 연산자로 세개의 피연산자를 가지고 있다.
형식: var = condition ? exp1 : exp2 ;
condition이 참이면 exp1이 var에 치환되고 거짓이면 exp2가 치환된다.
예. i = i>0 ? 1 : -1 ;
11.8 치환 연산자
여러 개의 변수를 같은 값으로 치환할 수 있다.
형식: var1 = var2 = var3 = ... = varN = value;
속기형(shorthand)로 쓸 수 있다.
형식: var op = expression;
이것은 var = var op expression ; 표현의 속기형이다.
op에 + - * / % << >> & | ^ 와 같은 연산자를 사용할 수 있다.
예. sum += i;
temp /= 2;
11.9 컴마 연산자
여러 개의 연산들을 하나의 문장에 나타낼 때 사용한다.
예. for(i=0, j=0; i+j +--+---+ +---+--+
+---------------------+----- 컴마 연산자의 사용
11.10 연산자 우선순위
C 연산자들의 우선 순위:
가장 높음 () [] -> .
! ~ ++ -- - (형 변환자) * & sizeof
* / %
+ -
<< >>
< <= > >=
== !=
&
^
|
&&
||
?
= += -= *= /= 등
가장 낮음 ,
<프로그래밍 연습>
종합문제 2(p.353) 1번.
12. C 선행 처리와 고급 문제
12.1 #define과 #include
#define의 확장 기능:
함수의 사용과 유사하게 인수를 #define에 정의된 매크로에게 전달할 수 있다.
예. #include
#define SUM(i, j) i+j /* ((i)+(j)) */
main()
{
int sum;
sum = SUM(10, 20);
printf("%d\n", sum);
}
sum = SUM(10,20); 은 선행처리기에 의해 sum = 10+20;으로 변환된다.
예. #define MAX(x, y) ((x)>(y)) ? (x) : (y)
매크로는 컴파일시에 호출되는 위치에 정의된 매크로가 그대로 대치되며,
함수는 실행시에 함수 내의 명령어들이 실행된다.
#include의 사용:
#include ==> 화일을 헤더 화일을 포함하고 있는 디렉토리에서 찾는다.
#include "filename" ==> 화일을 작업 디렉토리에서 먼저 찾는다. 만약 없다면
헤더 화일을 포함하는 디렉토리에서 찾는다.
12.7 동적 할당 (dynamic alloction)
실행시에 필요할 때마다 기억 장소를 할당하는 것
필요한 메모리의 크기가 가변적이거나 매우 큰 경우에 사용
void *malloc(size_t numbytes);
numbytes: 할당하고자 하는 기억 장소의 바이트 수
이 함수는 할당된 기억 장소의 시작점에 대한 포인터를 반환하며,
할당할 수 없다면, 널(null)을 반환한다.
void *calloc(nelem, elsize);
elsize : 할당하고자 하는 자료형의 크기
nelem : 할당하고자 하는 개수
모든 내용을 0으로 초기화
해제 함수: void free(void *ptr);
ptr은 해제하기를 원하는 기억 장소의 시작점에 대한 포인터이다.
예. #include
#include
main()
{
char *p;
p = malloc(80); /* 80 바이트 할당 */
if (!p) {
printf("allocation failed");
exit(1);
}
printf("Enter a string: ");
gets(p);
printf(p);
free(p);
}
예. #include
#include
#define MAX 10000
main()
{
int *p, i;
if ((p=(int *)calloc(MAX, sizeof(int)))==NULL) { /* 0으로 초기화 */
printf("Memory allocation error\n");
exit(1);
}
for (i=0; i p[i] = i+1;
printf("%d\n", p[i]);
}
free(p);
}
<프로그래밍 연습>
종합문제 2(p.385) 1번.

키워드

연산자,   함수,   콘솔,   입출력,   화일,   공용체
  • 가격2,300
  • 페이지수11페이지
  • 등록일2003.02.10
  • 저작시기2003.02
  • 파일형식한글(hwp)
  • 자료번호#221071
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니