☆ 교육과정
 - 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!

+ Recent posts