5일차 예비수업 메모

2015. 2. 16. 21:04창고

728x90
728x90

고용센터 문제 해결로 부득이하게 결강을 하게되었다..

슬프도다 교수님 수업 하나 하나가 주옥같은 말로 이뤄져있는데 못 듣다니!!!!

그래서 동기 동생에게 필기를 빡세게 부탁했다.


1. printf, scanf

printf : print + format

printf("문자열 or 문자열 상수", [가변인수(길이, 형태가 있지 않은)]);


scanf : scan + format

scanf("서식만 들어갈 수 있음", 가변인수);

% : format(서식)

\n, \r, \b : 확장열(excape sequence)

여기서의 escape는 탈출 X, 확장 O


2. 예제

#include <stdio.h>

void main()
{
 int a;
 int b;
 int c=0,d=0,e=0;

 a = scanf("%d%d%d",&c,&d,&e); // scanf의 리턴값 : %로 정상적으로 입력받은 값의 개수
 b = printf("%d %d %ddesu\n", c,d,e); // printf의 리턴값 : 출력된 문자열의 길이가 byte단위로 리턴?
 

 printf("%d\n", a);
 printf("%d\n", b);

}
================================================
<결과값>
(입력) 1 3 4
1 3 4desu
3
10
================================================


실수 입력 받을때는 %f, %lf 둘 다 된다.

출력할때는 float은 %f, double은 %lf로 함.

scanf에는 확장열을 쓰지 않는다. 서식만!

&는 번지를 의미, 인수로 주소를 전달하는 것.


3. int* a 의 정의

포인터 연산자로 풀어쓰면 이렇게 된다.

운영체제로부터 메모리 공간 어딘가에 자료형에 상관 없이 4byte의 메모리 공간을 할당 받고

그 주소 위에 a라는 방을 만들고 그 안에는 쓰레기주소값이 들어있다.(32비트 운영체제일 경우)


1개의 주소를 표현하기 위해 쓰이는게 4byte = 1WORD이므로 32비트에서 4byte인 것이고

16비트 운영체제에선 2byte, 64비트 운영 체제일때는 8byte의 메모리 공간이 할당된다.


포인터는 주소값을 저장하기 위한 특수한 변수.

주소만 받기 때문에 4byte로 할당받음 그런데 자료형은 왜 필요한가?

포인터 연산시 내부적으로 얼마만큼 참조를 뛸지 알아야 하기때문에 자료형이 필요.

void*형 : 받을때는 주소만 받고, 사용할때는 형변환을 이용해 타입을 잠시 바꿔서 사용해야 함.


4. 과제 및 연구

http://soen.kr

들어가서 포인터 파트 10-1, 10-2장 읽어오기

10-1장 정리해오기


포인터란 무엇인가?

포인터에 자료형이 왜 필요한가?

직접 설명할 수 있을 정도로 숙지해오기


내일은 포인터연산에 대해 배울 예정!





728x90
반응형

'창고' 카테고리의 다른 글

국기3기 정규수업 2일차 메모  (0) 2015.02.26
국기3기 정규수업 1일차 메모  (0) 2015.02.26
6일차 예비강의 메모  (0) 2015.02.23
4일차 예비수업 메모  (0) 2015.02.13
3일차 예비수업 메모  (0) 2015.02.13
2일차 예비수업 메모  (0) 2015.02.12
[지식] 1의 보수, 2의 보수. 음수계산!  (0) 2015.02.11