2010. 7. 8. 18:36
제 4장 변수와 연산자


 - 변수란 무엇인가?

 - 연산자란 무엇인가?
  > C언어에서의 다양한 연산자 존재
 
  ※  필수 - printf함수를 익숙하게 사용할줄 알아야합니다.
 

연산자란 무엇인가?

 - 연산을 요구할 때 사용되는 기호
   > ex : +, -, *, /

=========================================
#include <stdio.h>
int main()
{
   3+4;
   return 0;
}

=========================================
 
 ==> C컴파일러가 '+'를 실행했다
 
메모리 - cpu 내부존재 메모리( 캐쉬메모리 등 )
           - memory(Ram - Random Acess Memory)
 
 - 연산은 cpu에서 실행

┌ 위코드를 자세히 설명 ┐
 
=> 1. 연산하고자 데이타는 3, 4라는 정수다.

=> 2. 덧셈을 먼저 하는게 아니고

=> 3. 3, 4라는 값을 메모리공간에 들여놓고
    ex) printf함수의 경우도 " " 문자열을 메모리 공간안에 올라간다.

=> 4. cpu가 메모리 값을 가지고 가서 덧셈연산을 실행
 
=> 5. 우리가 보고싶은건 덧셈에 대한 결과를 보는것!
 
 
 
 즉, 연산한 결과를 만들어주는것

 ☞ 메모리공간에 이름을 붙여주면 얼마든지 쓸수있다
 
 ☞ 3+4값을 보기위해서 메모리공간에 이름을 지어준다 

 ☞ 저장할곳의 이름을 지어준다.
      > ex) 반 아이들 이름을 제각각 지어준다.
              이름이 없는 아이는 담에 이름을 몰라서 부를수가 없다

 ☞ 메모리는 이름이 없으면 다시 와서 불러오지 못한다.
 
==============<<수정해볼까요?>>===========================

#include <stdio.h>
 
int main()
{
   int a;            // 'a' 라는 이름을 등록(선언)한다.
   a = 3+4;         // 'a' 에 3+4의 결과 값은 7이 저장된다.
 
   printf("%d \n", a);  // a를 출력 즉, 7이 출력된다.
 
   system("PAUSE");
   return 0;
}
 
=========================================
 
 
 
변수란 무엇인가? : 변경이 가능한 수

 - 데이타를 저장할수 있는 메모리 공간에 붙여진 이름

 - 메모리 공간을 가르켜 변수라고 한다.
 
   ex3) int a 이런씩으로 지정을 않하면 메모리 공간이 없으니,
          다시 불러올수도 없다.
          이름을 지정하면 얼마든지 사용할수 있다
 
 
 
다양한 형태(자료형)의 변수 - 메모리 공간

 - 정수형 : char, int, long

 - 실수형 : float, double
 
ex) 정수형 데이타를 쓰고 싶다? 
     당분간 우리는 int형 변수를 사용하고 싶다
     (    자~~일단 뒤로 넘길까요?)
 
========================================= 실습
#include <stdio.h>
int main()
{
 int num1 = 100;
 int num2 = 180;
 int month = 12;
 int day = 25;
 
 printf("num : %d \n", num1 );
 printf("val2 : %d \n", num2);
 
 printf("제 나이는 %d 살 이고 키는 %d cm 여요^^ \n", num1, num2);
 printf("크리스마스는 %d월 %d일 입니다 \n", month, day);
 
 system("PAUSE");
 return 0;
}
=========================================
 
 
변수의 선언 및 대입
 
 - 대입 연산자(=) : 값을 대입하기 위한 용도의 연산자

 = '같다'라는 의미가 아님, "대입하겠다"라는 의미임
 
 
=========================================
 
int main()
{
int val;              // 변수
val = 20;             // 20이라는 수를 val에 대입하라
.........
 
=========================================
 
컴마 연산자(,)

ex) 이 3가지는 같은 의미다
 
1.   int a, b;     // (,)컴마를 사용
 
 
2.   int a; int b; // (;) 세미콜론(마침표)를 사용
 
 
3.
  int a;        // 제 각각 정의
  int b;        // 제 각각 정의
 
=========================================
 
#include <stdio.h>
int main()
{
  int a, b; // 변수선언 -> 쓰래기값이 포함
  int c = 30, d = 40; // 변수를 선언하자마자 초기화시키면 좋음
  a = 10;
  a = 20;
 
  printf("%d %d \n", a, b);
  printf("%d %d \n", c, d);
  return 0;
}


// 메모리 값에다가 변수 4개를 사용하게끔, 선언을 한형태
// 이것을 printf함수로 불러와서 출력시킨다.
 
 
변수선언시 주의사항 - 1
 
#include<stdio.h>
 
int main()
{
 
int a;              // 변수선언부분
a = 10;             // 변수대입부분
 
int b;              // 변수선언부분
b = 20;             // 변수대입부분
 
printf("%d %d\n", a, b);
system("PAUSE");
return 0;
}
                         ===================> 실행시 에러발생
 
 
// 변수를 함수내에 선언시, 가장 앞부분에 선언한다.
 
int a;  // 변수초기화
int b;  // 변수초기화
 
a = 10;
b = 20;   // ============> 이런형태로
 
===========================================
 
 
 
 
변수선언시 주의사항 - 2(이름을 지을때 안되는경우)

  1 - : 변수는 알파벳, 숫자 언더바(_)로 구성

 2 - : 대 소문자 구분
 
 3 - : 변수의 이름은 숫자로 시작 불가, 키워드 사용불가

 4 - : 공백이 포함될수 없음
 
 ex) int 7th_val ;
     int live_#id;
     int  kor yar;
 
     // 변수자체가 어떤 용도를 쓸건지 의미를 부여해서 선언하라!
 
===========================================
#include <stdio.h>
int main()
{
  int result ;           // 변수선언(의미부여)
  result = 3+4;         // 덧셈 결과값을 저장(대입)
 
  printf("덧셈결과 : %d \n", result);
  printf("%d 더하기  %d는 %d 입니다 \n", 3, 4, result);
  printf("변수 result에 저장된값 : %d \n", result); 
  
  system("PAUSE"); 
  return 0;
}
===========================================
 

 
상수란?: 변경이 불가능한 수
 ex) 1, 2, 3...등등
 
===========================================
 
대입연산자와 산술연산자

#include <stdio.h>
int main()
{
  int num1 = 6;
  int num2 = 4;
  printf("두수의 더하기 : %d \n", num1 + num2);
  printf("두수의 빼  기 : %d \n", num1 - num2);
  printf("두수의 곱하기 : %d \n", num1 * num2);
  printf("두수의 나누기 : %d \n", num1 / num2);
  printf("두수의 나머지 : %d \n", num1 % num2);
 
  system("PAUSE"); 
  return 0;
}
 
 
 
===========================================
 
기타 대입연산자
  - 대입연산자와 산술연산자가 합해져서 다양한 형태의 대입연산자 정의
  ex) a = a+a;    a+=a;
===========================================
 
 
// EX) 실습
#include<stdio.h>
int main()
{
 
 int val1 = 3;
 int val2 = 4;
 int val3 = 5;
 val1 += 3;   // val1 = val1 + 3;
 val2 -= 4;   // val2 = val2 + 4;
 val3 *= 5;   // vla3 = val3 + 5;
 printf("rusult : %d %d %d \n", val1, val2, val3);
 system("PAUSE"); 
 return 0;
}

===========================================
 
 

다양한 연산자(수학적 지식??산수적 지식이란 같음)
 
부호 연산으로서 +, - 연산자
증감감소연산자
ex) -(+20) = -20
     -(-20) = +20
 
===========================================
 
#include<stdio.h>
int main()
{
 
 int number = 8;
 int number2 = -10;
 
 number1 = -number1;
 printf("number1 =  -number1 연산후 : %d \n", number1);
 
 number2 = -number2;
 printf("number2 =  -number2 연산후 : %d \n", number2);
 
 system("PAUSE"); 
 return 0;
}
 
 
===========================================
#include<stdio.h>
int main()
{
 int val1 = 10;             
 int val2 = (val1--)+2; // (10--)+2 ==>> val2 = 12
 printf("val1 : %d \n", val1); // val1 == 9
 printf("val2 : %d \n", val2); // val2 = 12
 return 0;

}
 
 
// 연습
#include
int main()
{
   int a = 20;
   int b = 10;
 
   printf("a = %d \n", a);
   printf("b = %d \n", b);
 
   printf("a++ = %d \n", a++);
   printf("++a = %d \n", ++a);
 
   printf("b-- = %d \n", b--);
   printf("++b = %d \n", ++b);
 
  system("PAUSE");
  return 0;
}
 


Posted by 토실토실천재
2010. 7. 8. 18:35



 주석이란 ??

 - 프로그래머에게 메모(memo)의 기능을 부여

 - 컴파일러가 인식하지 않음

 - 주석을 삽입함으로 인해 프로그램의 가독성을 증가

 - 우리가 메모를 하기 위한 용도

 - 선택이 아닌 필수

 - 너무 난잡하고, 간결해도 안되지만...기준은 없다.
 

 
  주석의 두가지 형태

 - 여저 줄에 걸친 주석처리

/* 한줄 짜리 주석 */
 
/*
여러줄에
걸치 주석
*/
 
//단일행 주석
// 주석 하나
// 주석 둘
// 주석 셋
 
주석처리에 있어서의 주의점

 - 주석의 나타내느 기호는 중복될수 없다
    // 단일행 주소를 쓰는게 훨씬더 좋다

int main(void)    // 함수의 선언(이름)
                       // 함수의 시작
 3+4;                   // 함수의 몸체
 return 0;
                       // 함수의 종료
 
 
 
printf함수에 대해서

 - 가벼운 마음으로 오늘 파이팅을!
 
 - 출력하고픈 문자열(문장)을 출력 하는 함수

 - 표준적으로 많이 쓰이는  함수

 - 정확히 이해하지 못하고 사용하지만 잘못된건 아니다.

 - printf의 완벽한 이해는 뒷부분에서 다룹니다.

 - 이해보다는 익숙해집시다.
 
 
 
 
/* Hello.c */

#include
 
int main(void)
{
 printf("Hello, World! \n");
 return 0;
}

 
 
/* printf */

#include <stdio.h>
 
int main()
{
 printf("안녕하세요 모두들 \n");
 printf("%d \n", 1234);
 printf("%d %d \n", 10, 20);
 return 0;
}

 
 "\n"(특수문자) : 화면에서 enter(즉, 현재 커서를 한칸 내린다)
 
 %d는 무엇인가?(서식문자)
  > 서식문자란 : 출력대상의 출력형태를 지정하기 위한 문자
  > 내가 데이타를 출력하기 원한는데 출력을 하기 위한 형태를 지정
  > 출력대상이 있어야 한다. 두번째 전달인자 대상이된다.
  > printf함수는 무조건 첫번째에 문자열이 와야한다.
 

#include <stdio.h>
int main(void)
{
    printf("내 나이 : %d \n", 20);
    printf("%d 는 나의 점수 \n", 100);
    printf("즐거운 저녁 \n입니다 \n여러분 \n");
    
    system("PAUSE");
    return 0;
}


Posted by 토실토실천재
2010. 7. 8. 18:33
 
< 제 2장 C언어의 기초 >
 
 
처음은 Compile 하는게 더 어렵고, 답답할지도..

 
프로그램의 완성과정
 
 1 프로젝트 생성을 위한 화면
 
- 프로젝트란? : 로그램 실행을 위해서 코드를 작성하는데 그것을 담는 상자라고 이해한다.
 
- 우선은 익숙해지자.
 
- 프로그램을 넣을상자의 체계 
 
===> 워크스페이스 > 프로젝트상자 > 프로그램 코드를 작성할 파일
 
 
하나의 워크스페이스는 둘이상의 프로젝트를 가질수 있다.
 
- win32 consol Application 선택 -> location 지정 ->
   프로젝트 네임을 적는다(새로운 워크스페이스지정)
 
- 오케 버튼 클릭 -> 기본적인 틀을 만들어준다
 
- 이제 파일을 만들기 위해서 다시 Menu 에서 New를 선택한다.
 
- C++소스 파일을 선택한다. 파일네임은 xx.c라고 확장자를 붙인다.
 
- 자 소스를 다 친후 컴파일이란 과정을 거쳐야 한다.
 
- 컴파일(compile)후 -> 어떤일이 벌어지는가?
> 직접 디렉토리에 가서 debug 폴더에 가서 한번 파일이 생성됐는지 보자
> 디버깅파일에 프로젝트 파일 4개정도가 생성된것을 확인
==> 컴파일을 하면서 -> 생산성이 높아졌다...(파일이 생성되었다)
 
- 다음은 링크(link)
> build hello.exe 를 실행한다.링크+컴파일 그냥 통합해서 설명 > 빌드하면 즉 링크시키면 자동으로 컴파일도 된다. > 그럼 다시 debug 파일에 확인하면 실행파일이 생성되어있다.
 
dos command 로 들어가서 직접 찾아도 된다(실행 -> cmd)  
 
 
 
프로그램공부는?
 
- 프로그램 공부 : 이해를 하는것(30%) + 익숙함(70%)
 > 익숙해지면서 이해하게 될수 있도록 해보자(가능하다)
 > 남자아이가 장난감(레고블록)을 가지고 노는것처럼
 > 여자아이가 인형을 가지고 노는것처럼 > 익숙해지시길

함수에 대한 이해
 
- 적절한 입력과 그에 따른 출력이 존재하는 것을 가리킴
 
- C언어의 기본단위는 함수다.
 
- C언어로 프로그램을 만드는것자체는 함수를 만든다고 보면 된다.
 
- 함수를 만든것이 중요하다
 
- C프로그램은 함수로 시작해서 함수로 끝난다.
@ Ex) 3x + 3 = y
 => x값에 따라서 y값이 바뀐다!!
 ==> 즉 하나의 행위이다. 인자전달과 함수전달은 동시에 이루어진다
  

C언어의 함수 특성
 
 - 입력과 출력 존재

 - 순차적으로 실행

 - 함수의 기능을 정의하는 몸체 부분 존재
 - 기능은 중괄호 안에 정의한다.

 - 기능이 실행되면 출력을 한다.
 
 

세미콜론(;)이 필요한 문장

 - 컴퓨터에 명령을 내리는 문장

 - 시간의 흐름에 따라 명령을 수행하라는 의미

 - 세미콜론은 문장이(명령) 끝나면 붙이면 된다.
  
 
 
표준라이브러리에 대한 이해

ex) 슈퍼마켓에 필요한 것들 모아놓은것과 같음.
      > 필요할때마다 가서 사기만 하면 끝!~ㅋ

     
 - 이미 표준화해서 만들어 놓은 함수들의 집합

 - 기본적으로 제공해주는 함수모임

 - 헤더파일을 포함해야 함수가 사용가능하다
 
 
 
헤더파일에 이해 - #include <stdio.h>

 헤더파일  : stdio.h 파일을 include (포함시키겠다)
                    ex) printf함수는 stdio.h에 있는 표준함수이다.

 - stdio.h.라는 이름의 헤더파일

 - 헤더파일의 포함을 알리는 선언은 제일 먼저 등장해야한다.
   > 순서가 절대 바뀌면 안된다. 무조건 먼저선언해놓는다.
 

 
 
return 의 의미
 
 - 함수를 종료(빠져나온다)
 
 - 함수를 호출한 영역으로 값을 반환

 - 함수내에 존재 하지 않을수도 있다.

 - 둘 이상의 return 문이 존재하는 것도 가능.
 
 - return은 컴퓨터에게 반환한다는 뜻

 - return 이 없을수도 있다.

모든 프로그램은 main()함수가 있어야 한다!!!
  > main()함수가 끝나면 모두가 끝난다.

Posted by 토실토실천재