2015. 2. 16. 21:04ㆍ창고
고용센터 문제 해결로 부득이하게 결강을 하게되었다..
슬프도다 교수님 수업 하나 하나가 주옥같은 말로 이뤄져있는데 못 듣다니!!!!
그래서 동기 동생에게 필기를 빡세게 부탁했다.
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. 과제 및 연구
들어가서 포인터 파트 10-1, 10-2장 읽어오기
10-1장 정리해오기
포인터란 무엇인가?
포인터에 자료형이 왜 필요한가?
직접 설명할 수 있을 정도로 숙지해오기
내일은 포인터연산에 대해 배울 예정!
'창고' 카테고리의 다른 글
국기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 |