익스프레션 스튜디오
[C#.NET 기초강좌 #1]
  02. Main() 함수, 변수, 상수
 작성자 : NGong  작성일 : 2011-04-15
 E-mail : filmgdh골뱅이gmail.com  Homepage : http://http://blog.daum.net/coolprogramming
 강좌 읽음 : 26595  

Visual Studio 2010(한글)을 이용하여 C#프로젝트를 진행합니다.

2장은 보여주고 따라 하기식으로 진행됩니다.~~!

대상은 아주~ 약간의 C# 맛을 본 분들을 대상으로 합니다.

처음에는 C나 C++을 학습한 분들을 대상으로 할까도 생각했었지만, 대부분의 책들과 MSDN이 C++ 개발자들을 대상으로 기술되다 보니 처음부터 C#을 공부하려는 분들에게 어려움이 있는 것 같습니다. 또 쌩~ 초보자들을 대상으로 하기는 너무 내용이 커질 것 같아. 적어도 프로그래밍 언어 책을 만져 본적이 있다는 분들을 대상으로 합니다.

그래서 앞쪽 장들은 여러분에게 너무 쉬울 수 있습니다. ㅡㅡ;

 

1, 프로그램의 시작 Main() 함수

vs2010에서

파일> 새로 만들기 > 프로젝트 > Visual C# > 콘솔 응용 프로그램 : 를 선택하고 적당한 이름으로 프로젝트를 생성합니다.

 

다음은 처음으로 생성한 Program.cs C# 소스파일입니다.

  1. using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

     

    namespace NetGong

    {

    class Program

    {

    static void Main(string[] args)

    {

    }

    }

    }

Ctrl-F5을 눌러 빌드, 실행합니다.

결과 없이 빈 화면만 보입니다.

 

차차 설명하기로 하고 모든 내용을 지우고 아래와 같이 입력, 실행합니다.

  1. class Program

    {

    static void Main( )

    {

    System.Console.WriteLine("Hello!");

    }

    }

Hello!

"Hello!" 문자열을 출력합니다.

C#은 C++과 달리 함수나 데이터 변수를 전역으로 선언 및 정의할 수 없습니다. 모든 함수와 데이터 변수는 형식 내에 포함되어야 합니다.

그래서 Main()함수는 Program 클래스 안에 정의됩니다. 또 Main()함수는 프로그램의 진입점으로 Main()함수에서 프로그램이 시작됩니다.

System.Console.WriteLine() 함수는 데이터 출력 함수입니다.

형식(Type)클래스, 구조체, 열거형, 델리게이트, 인터페이스를 말합니다.

 

다음은 Main()함수의 다른 형태입니다.

  1. class Program

    {

    static void Main(string []args)

    {

    System.Console.WriteLine("Hello!");

    }

    }

Hello!

string 배열을 이용하여 프로그램 인수를 전달 받습니다. (이건 담에...)

 

또 다른 형태입니다.

  1. class Program

    {

    static int Main(string[] args)

    {

    System.Console.WriteLine("Hello!");

    return 0;

    }

    }

Hello!

프로그램이 종료할 때 반환하는 int 형을 갖습니다.

 

다음은 문자, 정수, 실수 등의 출력입니다.

  1. class Program

    {

    static void Main()

    {

    System.Console.WriteLine("Hello!"); //문자열

    System.Console.WriteLine(10); //정수

    System.Console.WriteLine(3.14); //실수

    System.Console.WriteLine('A'); //문자

    System.Console.WriteLine(true); //bool

    }

    }

Hello!
10
3.14
A
True

System.Console.WriteLine() 함수는 여러 형태로 중복되어 있기 때문에 대부분 데이터를 출력할 수 있는 만능 함수입니다.

(함수 중복도 담에...)

 

2, 변수와 상수

변수란 변경 가능한 수(값), 상수란 변경 불가능한 수(값)를 의미합니다.

일반적으로 프로그래밍 언어에서 변수란 값을 저장하는(할당 연산자 좌 항으로 사용되는) 메모리 공간의 이름입니다.

변수는 메모리 공간의 이름입니다.

 

다음은 정수를 저장하는 변수입니다.

  1. class Program

    {

    static void Main()

    {

    int n = 10;

    System.Console.WriteLine(n); //변수의 값 10 출력

    System.Console.WriteLine(10); //정수 상수 10 출력

    }

    }

10

10

변수를 출력하라는 의미는 변수에 저장된 값을 출력하라는 의미입니다.

그림은 n 변수가 메모리 공간에 할당된 모습입니다.

 

 

 

 

다음은 몇 가지 다른 형태의 변수입니다.

  1. class Program

    {

    static void Main()

    {

    char c = 'A';

    int n = 10;

    double d = 1.1;

    string s = "Hello!";

     

    System.Console.WriteLine(c);

    System.Console.WriteLine(n);

    System.Console.WriteLine(d);

    System.Console.WriteLine(s);

    }

    }

A
10
1.1
Hello!

char, int, double, string은 변수의 형식(type)이며 변수의 연산(연산 동작과 메모리 크기 등)을 정의합니다.

 

아래는 간단한 메모리 그림입니다. c는 2byte(문자), n은 4byte(정수), d는 8byte(실수)를 저장하기 위한 메모리 공간이며 s은 문자열 객체를 가리키기 위한 참조형 변수(참조자)입니다. (스택과 관리 힙, 값 형식과 참조 형식은 앞으로 설명합니다.)

중요한 것은 c, n, d, s가 자신만의 연산 정의를 갖는 변수라는 것입니다.

 

 

 

C#의 내장 형식 => http://msdn.microsoft.com/ko-kr/library/ya5y69ds.aspx

 

C#의 참조는 C++의 포인터와 비슷합니다. 하지만 같지는 않으므로 연관지어서 생각하는 것은 그리 좋은 습관이 아닙니다. 참조자는 실제 포인터가 아니므로...

C#의 세계에 오셨으면 C#의 세계를 사랑(?)하고 C++을 탈피하시기를....

 

오늘은 여기까지입니다.

수고하셨습니다. ^^

평점: 9.3/10 (23명 참여)    

나도한마디
사용자
cj            [2011-04-29]
Level 3
 [EXP.10/16]
많이 배우고 가요!!
사용자
도깨비            [2011-05-28]
Level 1
 [EXP.6/16]
모든 함수와 변수는 형식에 포함되어야 한다.

이부분이 핵심인거 같네요
사용자
1인자            [2011-07-23]
Level 4
 [EXP.8/16]
감사해요~~~^^
사용자
뽀꽁            [2011-07-29]
Level 2
 [EXP.5/16]
감사합니다^^ㅋㅋㅋ 첨 C언어해보는데도 느낌 확!
사용자
루피            [2011-08-18]
Level 2
 [EXP.2/16]
새로운마음가짐으로 배워봅니다.~~
사용자
해피하트            [2011-10-01]
Level 2
 [EXP.11/16]
감사합니다
사용자
MinGy            [2011-12-05]
Level 2
 [EXP.2/16]
감사 합니다.
사용자
대불            [2011-12-08]
Level 7
 [EXP.11/14]
잘 보고 갑니다~
사용자
GON            [2011-12-30]
Level 5
 [EXP.14/16]
많은 도움받고 있습니다!
감사합니다 : )
사용자
비오는화요일            [2012-01-16]
Level 1
 [EXP.12/16]
감사합니다. 잘 보고있습니다.^^
사용자
devG            [2012-02-27]
Level 8
 [EXP.6/14]
잘 읽고 갑니다!
사용자
samibl            [2012-04-04]
Level 2
 [EXP.14/16]
많이 배웁니다^^
사용자
에어크래프트            [2012-04-06]
Level 2
 [EXP.8/16]
잘보고갑니다.
사용자
어쩌다가..            [2012-07-18]
Level 5
 [EXP.1/16]
잘 읽고갑니다.
사용자
스카이바            [2012-07-26]
Level 2
 [EXP.8/16]
우왕 감사합니다
사용자
이동진            [2012-08-22]
Level 6
 [EXP.7/14]
감사합니다.
사용자
어킁            [2012-08-31]
Level 1
 [EXP.3/16]
감사합니다.
사용자
다짜고짜            [2012-09-24]
Level 12
 [EXP.4/40]
잘보고갑니닿
사용자
ㅃㅃ            [2012-09-26]
Level 8
 [EXP.0/14]
공간이라 으흠..
사용자
개발네발            [2013-02-26]
Level 12
 [EXP.35/40]
잘봤습니다 ^^
사용자
카미다            [2013-03-15]
Level 3
 [EXP.10/16]
잘보고 갑니다 ^^
사용자
힝힝            [2013-04-11]
Level 2
 [EXP.7/16]
쉽게 이해가 가게끔 설명하시네요^^ 친절친절
도움이 많이 됩니다.
개념 정리가 확실히 되네요 ^^
사용자
흐노니            [2013-05-20]
Level 12
 [EXP.23/40]
멋진 요약 정리인듯 합니다!!
사용자
수수            [2013-06-11]
Level 5
 [EXP.9/16]
감사합니다 ^^
사용자
의지돌이            [2013-06-18]
Level 4
 [EXP.14/16]
깔끔한 정리 감사합니다 ㅎ 많이 배우고 갑니다.~~
사용자
hiro1983            [2013-08-02]
Level 11
 [EXP.33/40]
c++ 탈피....ㅠㅠ
사용자
Atom            [2013-08-22]
Level 1
 [EXP.15/16]
깔끔하게 보기 좋네요
사용자
꿈속을걷는자            [2013-11-05]
Level 8
 [EXP.0/14]
감사합니다.
사용자
이넘들봐라            [2014-06-26]
Level 3
 [EXP.7/16]
처음부터 다시 정리할려고 보고있는데 ㅎㅎ
쉬운 설명 감사합니다. ㅎ
사용자
쥬기            [2014-11-14]
Level 3
 [EXP.13/16]
배우고 갑니다.!
사용자
넥스트            [2015-01-22]
Level 5
 [EXP.10/16]
감사합니다
사용자
deer            [2015-01-24]
Level 1
 [EXP.9/16]
감사합니다ㅎ
사용자
구스구스            [2015-02-09]
Level 4
 [EXP.0/16]
감사합니다.
사용자
순살소세지            [2015-04-06]
Level 4
 [EXP.14/16]
감사합니다
사용자
더키            [2015-04-28]
Level 1
 [EXP.15/16]
감사합니다
사용자
이재웅            [2015-05-04]
Level 11
 [EXP.34/40]
많이 배우고갑니다!
사용자
쌍빠            [2015-05-21]
Level 2
 [EXP.6/16]
복습할겸 보고있습니다.
잘보고갑니다~
사용자
영땡이            [2015-09-18]
Level 1
 [EXP.12/16]
감사합니다.
사용자
쭌아            [2015-12-14]
Level 1
 [EXP.6/16]
열심히 따라가겠습니다. 감사합니다.
사용자
prokorsh            [2016-09-15]
Level 21
 [EXP.43/50]
좋은 강좌 감사합니다
사용자
송알송알싸리잎에            [2017-01-25]
Level 3
 [EXP.7/16]
감사합니다. 열심히 배우겠습니다^^
사용자
hellobini            [2017-07-25]
Level 7
 [EXP.9/14]
기초튼튼 ! 감사합니다 !
사용자
방구천사            [2017-12-29]
Level 5
 [EXP.11/16]
감사합니다.
사용자
푸하하2            [2018-09-12]
Level 2
 [EXP.8/16]
감사합니다~
사용자
양지신사            [2019-02-15]
Level 1
 [EXP.9/16]
오늘부터 !! 시작 !
기초 0.02정도 있는 초보자입니다.
회사에서 자꾸 압박을 줘서..
뒤늦게 나마 배워볼까 합니다
잘 부탁드립니다.