☆ 교육과정
- 1주차 : 자료형, 출력, 연산자, 제어문
- 2주차 : 배열, 포인터, 함수
- 3주차 : 함수(계속), 구조체, 클래스
☆ 불러올 때에는 workspace(하나의 프로젝트, dsw 파일) 째로 불러온다
☆ 비주얼C++에서 일반적인 source파일을 만들 경우는 cpp(c++) 확장자가 자동으로 붙으므로, 그냥 c 파일을 만들 경우는 이름을 정할 때 끝에 .c까지 확실하게 붙여주면 c 파일로 저장된다.
☆ void main() - 함수
- 앞의 void는 리턴값의 타입. void는 리턴값이 필요없을 때에 사용(그래서 main() 함수에 사용한다)
- 함수에는 대괄호 { }가 붙는데, 이 대괄호 안에서 변수를 선언하면 그 안에서만 사용되는 지역변수가 된다.
- 하나의 프로젝트 안에 같은 이름의 함수는 존재할 수 없다
☆ #include와 같이 #이 붙으면 전처리문이 된다
- #include 뒤에는 < >가 올 수도 있고 " "가 올 수도 있다
☆ \뒤에 알파벳이 붙는 것은 "제어문자열"이라고 한다. printf(" ") 안에서 사용된다
- \n : 커서위치 다음줄로 줄 바꿈(next)
- \t : 탭공백 넣기(tab)
- \b : 커서위치 한글자 앞으로(back)
- \a : 경고음 출력(alert)
- \r : 엔터(return)
☆ 경로명을 취급할 때 \가 붙으면 제어문자열로 판단해 버리기 때문에, 경로명의 "\"를 입력하기 위해서는 "\\"와 같이 2번 써준다
☆ 마찬가지로 문자열에 " "를 그냥 사용하면 printf 명령이 중간에 닫혀버리기 때문에, 따옴표를 그대로 문자열로 사용하기 위해서는 \"과 같이 앞에 \를 붙여준다
☆ MSDN으로 명령어에 대해 알아볼 경우 해당 명령어 위에 마우스 커서를 갖다두고 F1키를 입력한다
- 그 명령어에 필요한 헤더 파일도 찾아볼 수 있다
☆ 자료형(변수의 종류)
* 기본형
- 정수형(Integer)
- 문자형
- 실수형
- 열거형
- void형 : 타입이 없는 자료형
* 유도형
- 배열 : 같은 타입의 자료 집합
- 구조체 : 다른 타입의 자료 집합
- 공용체 : 메모리를 공유하는 자료 집합
- 포인터 : 대상의 메모리 주소(번지)를 가리키는 타입
- 함수형 : 함수의 메모리 주소(번지)를 가리키는 타입
☆ 변수 여러개를 한꺼번에 선언할 때는 콤마로 이어서 해준다
- int a, b, c <ㅡ이런 형식
☆ 변수 선언시 앞에 unsigned를 붙이면 부호 비트를 없앤다는 뜻이다
- 자료형의 허용범위 2배 정도로 늘어난다
- 음수 표현은 불가능해진다
☆ printf("a=%d(%d Byte)\n",a,sizeof(a));
- printf의 따옴표 안에 들어가는 변수 값은 따옴표를 닫은 뒤 뒤에 붙게 된다.
- 즉 빨간색 %d는 빨간색 a, 녹색 %d는 녹색 sizeof(a)의 값이 출력된다.
☆ 변수 선언시에는 a=0과 같이 미리 초기값을 넣어서 초기화를 해주는 것이 좋다. 그렇지 않으면 쓰레기 값이 들어가 버린다
☆ 변수에 정한 자료형의 범위를 벗어난 값이 들어가면 에러가 나거나, 에러가 나지 않아도 프로그램이 자료형에 의해 값을 수정해 버린다. 변수에 값이 들어갈 때에는 자료형의 허용범위와 맞는지 확인해야 한다
☆ (a) printf("%d Byte\n",sizeof(5/3));
(b) printf("%d Byte\n",sizeof(5.0/3));
- (a)의 경우 값은 1이 된다(5, 3이라는 상수값이 모두 정수형이므로 실수가 될수없다)
- (b)의 경우 값은 1.6이 된다(5.0이라는 상수값이 실수이므로 실수 값이 허용된다)
☆ int a=9;
int b=4;
double c,d;
c=a/b; // 정수형끼리의 계산은 무조건 정수형으로 된다.
d=(double)a/b; //(자료형) cast 연산자라 함. 강제형변환
printf("c=%.2lf\n",c);
printf("d=%.2lf\n",d);
- 3행에서 c에 double을 선언하더라도 이미 1, 2행에서 a와 b는 정수형이기 때문에 c 값에는 정수만 들어간다.
- 실수 결과값을 얻고 싶으면 a나 b를 실수형으로 바꾸면 되지만, 경우에 따라 그쪽의 자료형을 고정하고 싶을 때가 있다. 이런 경우는 강제 형변환을 사용한다.
- 5행에서 들어간 것처럼 수식의 앞에 ( )를 치고 자료타입을 선언하면 수식의 결과값을 강제로 원하는 자료타입으로 바꿔준다. 실제 코딩에서 자주 사용하게 되는 방법이다.
☆ void main()
{
int a=55; //10진
int b=055; //8진
int c=0x55; //16진
printf("a=%d, b=%o, c=%x\n",a,b,c);
printf("a=%d, b=%#o, c=%#x\n",a,b,c);
}
- //변환기호
//정수형 : %d(10진), %o(8진), %x(16진)
//실수형 : %f(고정소수점), %e(지수형), %g(혼합형)
//위 자료형들은 float이며, double일 경우는 앞에 L을 붙인다.
//문자형 : %c(1바이트), %s(문자열)
- 타입 앞에 b=%#o 와 같이 # 표시를 붙여주면 값을 해당 진법의 표기 형식에 맞게 보여준다
☆ printf("a=%04d\n",a); -> 4d로 하면 값을 4자리로 보여주며, 앞에 0이 붙으면 빈 자리를 0으로 채운다
printf("a=%4d\n",a); -> 4d로 해서 값을 4자리로 보여주지만 별다른게 없으므로 빈 자리는 빈칸이 출력
printf("a=%-4dHi!\n",a); ->4d로 값이 4자리가 되지만 -가 붙으면 빈칸을 뒤에 붙인다
a=0055
a= 55
a=55 Hi!
'기반지식 > C/C++' 카테고리의 다른 글
중앙정보학원 C/C++/OOP 강좌 7일차 - 2010년 6월 15일 (0) | 2010.06.15 |
---|---|
중앙정보학원 C/C++/OOP 강좌 6일차 - 2010년 6월 14일 (0) | 2010.06.14 |
중앙정보학원 C/C++/OOP 강좌 4일차 - 2010년 6월 9일 (0) | 2010.06.10 |
중앙정보학원 C/C++/OOP 강좌 3일차 - 2010년 6월 9일 (0) | 2010.06.09 |
중앙정보학원 C/C++/OOP 강좌 2일차 - 2010년 6월 8일 (0) | 2010.06.09 |