본문 바로가기

카테고리 없음

프로그래밍 C++ (1)

반응형

※c ++ 스타일 입출력

  • c++에는 printf, scanf보다 좀 더 세련된 입출력 방법인 COUT 과 CIN 이 있다
  • cout은 출력을 담당한다
  • iostream을 사용하여 인클루드한다.
  • using namespace -> std:: 생략
  • ​cout은 함수가 아니라 객체이다 / 자료형이 알아서 지정해줘서 자료형을 안써도 된다.
  • std::endl이라는 객체를 추가했는데 이친구는 cout에서 줄바꿈을 할 때 쓰이는 객체이다
  • cout의 장점은 자료형에 상관없이 알아서 적절한 형태로 출력한다는 점이다
  • cout <<으로 출력한다
  • cin은 인력을 받을 수 있는 >>으로 출력한다
  • 문자열은 string
  • string a -> string 자료형 / a가 변수 이름
  • 문자열을 n번째 칸에 들어있는 문자로 바꿀 수도 있다
  • 배열에서도 그랬듯이 n은 0부터 시작한다
  • +연산자를 사용하여 문자열끼리 이어붙인 새로운 문자열을 만들 수 있다.

-> 위 사진 같은 경우 using namespace std를 사용하여서 입출력을 할때 앞에 std::를 사용하지 않은 모습을 볼 수 있다.

-> 위에서 알 수 있는 점은 cout은 << , cin은 >>을 사용한다는 점 그리고 < string>을 사용했다는 점을 알 수 있다

※C++에서는 의미가 좀 다른 초기화

  • c에서는 변수를 초기화 한다는 것을 선언과 대입을 동시에 하는 것이라고 배웠다 하지만 C++은 다르다
  • C++에서는 선언 후 대입하는 것과 선언과 동시에 초기화하는 것에는 의미상 차이가 있다.
  • C++에서는 int a(10)과 같이 초기화하면 int a = 10과 같은 의미이다

※래퍼런스변수

  • 다음과 같이 변수 ar가 있을때 a를 가르키는 래퍼런스 변수 b를 만들어 b를 마치 a인 것처럼 사용하여 값을 바꾸거나 얻어올 수 있다

int a(10);

int &b = a // 래퍼런스 변수 b가 생성되고 b는 a를 가르킨다

b=15; //b 값을 통해 a의 값을 바꿀 수 있다.

cout << b << endl; // a의 값이 출력된다.

  • 래퍼런스 변수는 반드시 생성되는 동시에 어떤 변수를 가르켜야한다
  • 래퍼런스변수는 일반변수와 달리 연산자를 사용했을 때 아무 값도 복사되지 않고 우변의 변수를 가리키는 역할만한다 !!

※범위기반 for문

-> for(원소 : 범위) {

반복내용

}

-> int i 가 바로 배열의 원소에 해당한다 int i : arr이라고 쓰면 i라는 변수에는 arr에서 각 원소의 값을 순차적으로 대입한다 이제는 i자체가 arr의 칸 번호가 아닌 칸 안에 들어있는 값 자체를 의미하기 때문에 출력해야하는 값도 arr[i]가 아닌 그냥 i가 된다

-> 여기서 바로 i++를 사용해서 배열을 출력해보면 실제로는 아무런 변화가 없게 된다. 왜나하면 arr의 각 칸의 값이 i에 복사되기 때문이다.

※c ++ 스타일 함수

함수 오버로딩

- 매개변수의 종류만 다르다면 같은 이름의 함수를 여러개 정의할 수 있다

​2. 디폴트 매개변수

디폴트 매개변수는 매개변수가 어떤 기본값을 갖게하는 기능이다 인수를 넘겨주는 것을 생략하면 매개변수는 기본값으로 초기화되고 인수를 넘기면 그 값으로 초기화 된다 예를 들어

int f(int a = 1); // a의 기본 값이 1이라는 의미

-> 뒤쪽부터 인수를 차례대로 생략할 수 있다 매개변수의 디폴트 값도 그에 따라 맨뒤의 인수부터 차례대로 지정해야한다

배운 것 총 정리:

ž++의 입출력(cin, cout)

žnamespace // using namespace std;

žstring s; // char s[100];

ž레퍼런스 변수 // int &a = b;

ž범위기반 for문 // for(int i : arr)

ž함수 오버로딩

ž디폴트 매개변수

반응형