본문 바로가기

C.E/C++

1. C++ 기초 (출력, 입력, 변수선언, 문자열, 형변환, 배열, 구조체, 포인터, size of)

//작성 중인 포스트입니다.

CCL참고    13.10.23    KS Uni. CSLab kwon jinuk

 

 

C++을 처음 접하면서 정말 당황스러웠다. 출력부터 너무 다르고 시작과 동시에 포인터를 가르쳐주더라.

조금은 의아한 면이 많았지만, 그래도 어쩌겠는가. 지금은 시험기간....ㅍ_ㅍ

 

C++의 기초부터 정리하고 공부해야한다.

 

 

1. cout는 무엇인가.

 

C에서의 Printf 출력함수를 C++에서는 cout라고 한다.

 

#include <iostream>    //cout를 사용하게 해준다.

using namespase std;

 

int main() int_tmain(int argc, _TCHAR* argv[]){

 

cout<< "Hello, World! \n";

 

return 0;

}

 

 

 

 

이제부터 기본적인

 #include <iostream>

using namespase std;

부분은 생략한다.

 

 

2. endl은 무엇인가.

 

c에서 printf 줄바꿈 \n과 같은 것이다.

 

cout << 1 <<  2 << 3 << 4;

출력:
1234

 

cout << 1 << endl  << 2 << endl  << 3 << endl  << 4;

출력 :

1

2

3

4

 

 

 

3. 변수의 선언과 값할당, 연산(평균내기)와 출력

 

1) 정수타입

 

//변수 선언과 값할당

int a;

int b;

int c;

a = 87;

b = 93;

c = 100;

int avg;

 

//연산

avg = (a+b+c)/3;

 

cout<<a<<b<<c<<avg;    //출력 

 

2) 실수타입

 

 //변수 선언
float f;
double d;

f = 0.00123f; //일반적으로 실수 float는 끝에 f를 붙인다.
d = 1.23;
f = 1.23E-3f; //과학적 실수 표현방식. 1.23 * 10의 -3승
d = 1.23E0;  //1.23 * 10의 0승

 

3) 문자타입

 

 

char a;
char b;
a = ‘A; // ' '로 문자라는 표시
b = 65;  // 숫자는 문자표의 65번째 문자를 의미

 

 

 

 

 

 

* 아스키코드 표 (ASCII 코드표)

 

10

16

문자

10

16

문자

10

16

문자

10

16

문자

10

16

문자

0

0

Null

47

2F

/

68

44

D

89

59

Y

110

6E

n

7

7

Bell

48

30

0

69

45

E

90

5A

Z

111

6F

o

8

8

BS

49

31

1

70

46

F

91

5B

[

112

70

p

9

9

Tab

50

32

2

71

47

G

92

5C

\

113

71

q

10

A

LF

51

33

3

72

48

H

93

5D

]

114

72

r

13

D

CR

52

34

4

73

49

I

94

5E

^

115

73

s

32

20

공백

53

35

5

74

4A

J

95

5F

_

116

74

t

33

21

!

54

36

6

75

4B

K

96

60

`

117

75

u

34

22

"

55

37

7

76

4C

L

97

61

a

118

76

v

35

23

#

56

38

8

77

4D

M

98

62

b

119

77

w

36

24

$

57

39

9

78

4E

N

99

63

c

120

78

x

37

25

%

58

3A

:

79

4F

O

100

64

d

121

79

y

38

26

&

59

3B

;

80

50

P

101

65

e

122

7A

z

39

27

'

60

3C

<

81

51

Q

102

66

f

123

7B

{

40

28

(

61

3D

=

82

52

R

103

67

g

124

7C

|

41

29

)

62

3E

>

83

53

S

104

68

h

125

7D

}

42

2A

*

63

3F

?

84

54

T

105

69

i

126

7E

~

43

2B

+

64

40

@

85

55

U

106

6A

j

127

7F

Del

44

2C

,

65

41

A

86

56

V

107

6B

k

 

 

 

45

2D

-

66

42

B

87

57

W

108

6C

l

 

 

 

46

2E

.

67

43

C

88

58

X

109

6D

m

 

 

 

 

** 특수문자

 

  다음줄넘기기  \n
 수평탭           \t
 백스페이스     \b
 역슬래쉬        \\
 작은따옴표     \’
 큰따옴표        \”

 

4) Bool 타입 (Bool 문자)

 

bool a;
bool b;
a = true;
b = false;
a = 1; 

 

*** 참고로 Bool문자는 1bit이며 1이 참(True)값을 가지고 0이 거짓(False)값을 가집니다.

 

 

5) 형변환

 

int a = 3;

float b;

b = (float) a;   //int -> float형으로 변환

 

int a;

float b = 3.1f;

a = (int) b;     // float형에서 int형으로 변환

 

6) 연산자

 

목적) 관계연산자와 논리연산자가 함께 있으면 관계연산자가 우선.

 

bool b,b1;
b = 5>4 && 3>5;      // true && false
b = 5>4 || 3>5;       // true || false

b = ((5>4) && (4>3)) || (4<8);
b1 = 5>4 && b==true;

 


**** 연산자 우선순위

 

 

 

 

 

7) 입력

 

(Java에 비해서 입력이 정말 간단한 듯 싶네요. ㅎㅎ) 

 

 cin >> a >> b;   //cin으로 부터 a와 b를 받아들여라.

 

 

8) 배열

 

int a[10];       //배열변수의 타입      배열변수 명 [배열 방(원소)의 개수]

double a[20],b[30];
char str[100] ; 

 

* 배열의 각 메모리(공간)은 인덱스 값으로 접근합니다.

- 배열의 이름 [인덱스] = 값;

* 인덱스는 0부터 시작합니다.

- int a[3] -> a[0] , a[1], a[2] 

 

int a[5] = {100,88,92,40,76};   //배열을 정의하며 값을 할당해 줄 수도 있습니다. 

int a[] = {100,88,92,40,76};    //인덱스를 설정하지 않고 넣어도 인덱스가 자동으로 형성됩니다.

 

int a[];  //선언과 동시에 초기화 하지 않으면 불가능합니다.

a[] = {100,88,92,40,76};

 

int a[5] = {100,88};   //인덱스의 크기와 맞지 않습니다. 

int b[100] = {0};      

 

int kor[100];             // 배열의 선언
int i;                        // int 변수 선운
For(i=0; i<100; i++)    // 반복문
kor[i] = 100;             // 배열의 각 메모리에 100을 넣어준다.

for(i=0; i<100; i++)     // 반복문
cout<<kor[i];           // 배열의 출력

 

 * 배열의 메모리(인덱스) 크기를 알아보는 방법.

 

sizeof (변수의 타입)
sizeof (변수(배열)의 이름)

 

 

  - 기초형태

cout<<sizeof(int);
int a;
cout<<sizeof(a);

 

  - 사용

int a[5];

int b[] = {1,2,3};

cout<<sizeof(a)/sizeof(int);  //출력

cout<<sizeof(b)/sizeof(int);  //출력

 

 

***** 배열을 사용할 때에는 인덱스 값을 항상 주의해야합니다. 배열의 대입은 원소끼리만 가능합니다.

 

 

9) 문자열 (char, string)

 

문자열 = char의 배열, string

 

char의 경우에는 항상 문자열의 끝에 '/0' (NULL 값)이 들어가야 한다. 

 

  - 기초형태

char a=’\0’;

char b = 0; 

 

  - 연습용 예제

char a[] = {’H’,’e’,’l’,’l’,’o’};

char b[] = {’H’,’e’,’l’,’l’,’o’,’\0’};

char c[] = {’H’,’e’,’\0’,’l’,’l’,’o’,’\0’};

cout << a <<”\n”;

cout << b <<”\n”;

cout << c <<”\n”;

 

//쌍따옴표로 묶으면 자동으로 끝에 Null이 추가된다.

cout << "Hello";        //Hello 출력

char d[] = "Hello";    //Hello 넣음

cout << d;               //cout 출력

 

// char b[20];

// b= "This is a Test"; //물론 이 문장도 3번 변수 와 마찬가지로 에러가 난다.

 

return 0; 

 

 

 

 

 

10) 구조체

 - 관련된 정보를 그룹화 한다.

 - 객체 방식 접근은 struct와 class가 있다.

 

struct Student{

    char name[30];

    int id;

    char bloodType;

    double grade;

};

Student good, bad;

 

 

 - 기초형태

struct Student
{

      int a,b,c;

};

 

 - 기초예제 

 struct Student
{
     int a,b,c;

};

 

int _tmain(int argc, _TCHAR* argv[])
{
     struct Student p1 = {100,200,300};
     std::cout<<p1.a<<" , " <<p1.b<< " , "<< p1.c<<std::endl;

     return 0;
}

 

 

 

11) 포인터

 

  - 기초형태

 int *p=NULL;
 *p = 123;

 

 

 

 

 

'C.E > C++' 카테고리의 다른 글

C++ 현재 출력중 화면 지우기(cls)  (0) 2013.12.04