본문 바로가기

Program Languege/C/C++

레퍼런스 변수 레퍼런스 변수 레퍼런스 변수는 이미 선언된 변수를 다른 이름으로 부르는 변수이다. 레퍼런스 변수는 선언시 어떤 변수의 다른 이름이 될 지를 반드시 명시해야한다.(선언에서 레퍼런스 변수를 나타내는 기호인 주소지정 연산자&를 함께 표시해야한다) Ex> int a = 0; int &ref = a; => 자료형 &변수 이름 = 변수; 변수는 단 하나의 이름을 가진다고 했다. 우리도 하나의 이름을 가지듯이 하지만 별명은 여러개가 되듯 변수도 여러개의 별명을 가진다고 생각하면 쉽게 이해가 될 것이다. 예를 들어 철수가 있는데 철수의 별명이 개똥이, 골목대장, 1반 반장 등으로 불릴 수 있듯이 말이다. 하나의 변수에 여러개의 레퍼런스 변수를 붙여줄 수 있으며 선언시에 레퍼런스 변수를 통해 레퍼런스 변수를 선언할 수 .. 더보기
문자열 문자열 문자열이라는 것은 문자의 모음이다. 'C'는 문자 "Computer" 는 문자열. 그러므로 문자형 변수가 여러개가 모인 것이 문자열이므로 문자 배열로 표현할 수 있다. Ex> char string[30] = "computer"; "computer"는 총 여덟개의 문자 모음이다. 그래서 0번부터 7번까지 출력을 하도록하면 되는데 저장 값을 알고 있기 때문에 0번 부터 7번까지 출력을 하면 된다고 생각을 하지만 길이를 모르는 경우에는 어떻게 출력을 할 것인가. 그래서 문장의 끝을 알려주는 문자 '\0'이 사용된다. 문자열의 끝을 알려주는 NULL이라는 문자다. 위에서 "computer" 라고 값을 넣어주게되면 자동으로 끝에 이 '\0'을 붙여준다. 그러므로 길이는 총 9가 된다. string[0] s.. 더보기
배열 배열 변수는 하나의 저장 공간, 배열은 연속적인 저장 공간을 나타낸다. 하나의 이름으로 여러개의 변수를 사용하는 것과 같은 효과를 가질 수 있어 편리하다. Ex> int a1, a2, a3; => int a[3]; 이처럼 간편하게 사용 가능하다. 선언 방법은 변수와 같이 자료형 변수이름 그리고 뒤에 대괄호([])와 몇개의 공간을 사용할 것인지 명시해주면 된다. Ex> int a[5]; // a라는 배열을 만들고 int형 자료를 5개 저장할 수 있다. 각각의 저장 공간은 다음과 같이 사용한다. Ex> a[0]. a[1], a[2], a[3], a[4] 배열 이름 뒤에 대괄호 안에 있는 숫자는 첨자라고 하며 배열의 첨자는 0부터 시작한다. 그러므로 선언시 명시한 크기 값보다 하나 작은 값이 배열의 맨 끝이다.. 더보기
포인터 변수 - 1 포인터 변수 - 1 포인터 변수는 말그대로 변수를 가리키는 변수, 주소를 자료형으로 갖는 변수다. 전에 변수 설명에서 변수는 메모리 공간 특정 위치에 저장공간을 할당받는다고 했었다. 그리고 그 안에 값을 넣을 때 변수의 이름을 가지고 접근을 한다. 하지만 그외에 접근 방법이 없을까? 그것이 바로 포인터 변수이다. a라는 변수가 있는데 그 안에 값을 쓸 떄 변수 이름을 가지고 메모리 공간에서 그 변수의 위치를 찾아가도 되고, 이름이 아닌 변수의 위치 = 주소를 가지고 찾아가서 쓸 수 있다는 말이다. 포인터 변수는 주소를 값으로 가진다. 자료형에 상관 없이 4바이트의 크기를 가진다. Ex> int a = 0; // a를 메모리 공간에 할당. int *p = &a; // a의 주소를 포인터 변수 p에 저장. .. 더보기
네임스페이스 네임스페이스 말그대로 이름 공간. 어떤 지역에 이름을 붙이고 그안에 있는 것들을 소속시키는 것이다. 옛 속담에 서울가서 김서방 찾기라는 말이 있다. 서울에 무수히 많은 김서방중에 자신이 찾는 김서방이 누구인지 정확하게 명시해줄 수 있는 것이 이 네임스페이스이다. 서울에서도 어느 구 어느 동 몇번지에 사는 김서방. 이렇게 찾는다면 어떤 김서방인지 정확히 알 수 있다. Ex> namespace 이름 { 선언 내용; } 이름은 변수 이름 정의 형식과 같다. 위치는 메인함수 내부가 아닌 파일 선언부에서 사용해야한다. -소스 코드 예시 namespace seoul { int kim = 0; } int main(void) { int kim = 1; std::cout 더보기
반복문 반복문 특정한 조건을 만족하는 동안 반복해서 실행하는 것을 말한다. 반복문에는 for문, while문, dowhile문이 있다. for문 Ex> for(초기화; 조건문; 증감문) { 반복할 내용; } 이 for문의 경우도 반복할 내용이 두 줄 이상인 경우 if문처럼 괄호로 범위를 묶어주는 것이 좋다. for문의 실행 순서 1. 초기화를 실행한다. 2. 조건문을 실행한다. 조건이 참일 경우 for문 안에 내용을 실행하고 거짓일 경우 반복문을 종료한다. 3. 반복할 내용을 실행한다. 4. 증감문을 실행한 후 2번부터 반복한다. for문 안에 초기화, 조건문, 증감문은 생략이 가능하며 이 세가지는 ;으로 구분을 짓는다.(단 조건문이나 증감문을 생략하는 경우 무한 루프에 빠질 수 있기 때문에 유의해서 사용하자... 더보기
조건문 switch switch문 switch문도 if문처럼 조건문이다. 하지만 사용법은 조금 다르다. if문의 조건은 논리에 따른 조건이었다면 switch는 조건의 값만을 가지고 판단을 한다. Ex> switch(조건) { case 1: { 조건 값이 1일 때 실행 내용. } case 2: { 조건 값이 2일 때 실행 내용. } ..... default: { 모든 조건이 맞지 않을 때 실행 내용. (if문의 else와 같은 역할.) } } 위에 조건은 변수나 나중에 배울 함수의 리턴 값을 사용할 수 있다. if문과 다른 점은 위에 괄호로 구역을 구분지었지만 case안에 내용은 구분을 짓지 않아도 구분을 한다. case 뒤에 붙는 숫자 1은 조건의 결과 값이 1일 때를 나타낸다. 1이 아닌 다른 값이 되어도 상관이 없으며 .. 더보기
조건문 - if 조건문 조건문이란 조건에 따라 상황을 판단해서 그 상황에 맞는 행동을 하도록 하는 것이다. 조건이 참일 때 아님 거짓일 때 실행 할 코드를 작성하면 그에 맞게 실행을 한다. 논리연산자 !를 사용하거나 == false 를 사용해서 거짓이 맞을 때(결국 조건이 참일 때)로 설정을 할 수도 있다.(if문에 한해서) if문 조건의 결과는 참 아니면 거짓이다. 조건이 참일 때 거짓일 때 등 여러 형태로 사용할 수 있다. 형태는 세가지가 있다. 간단한 if(), else if(), else Ex> if(조건) { 조건이 참일 때 실행 내용. } 먼저 if는 조건이 참일 때 {}안에 내용을 실행한다. 괄호를 쓰지 않아도 되지만 쓰지 않을 경우 예시를 들어주면 다음과 같다 - 소스 코드 예시 int a = 0; if(.. 더보기
연산자 - 연산자 컴퓨터 언어에서 제공되는 자료형과 가장 밀접한 관계를 갖는 것 중의 하나가 연산자이다. 그 이유는 연산 대상과 연산 결과가 저장되는 자료형에 따라 연산 결과가 결정되기 때문이다. = 등호의 의미. 대입연산자라고 하며 일반적인 수학에서의 등호와는 다른 의미를 가지고 있다. 오른쪽에 있는 것을 왼쪽에 대입해라, 할당하라 라는 뜻이다. Ex> int a = 5; => int a에 5를 넣어라. 라는 뜻. 왼쪽에는 변수가 위치할 수 있고 등호 오른편에는 변수와 상수 둘다 가능하다. 상수는 변경할 수 없는 값이기 때문에 등호 왼족에 위치할 수 없다. 10 = a; 라고 쓴다면 다음과 같은 에러가 뜬다. 초기화 프로그래밍에서 가장 중요하고 기초가 되는 초기화를 알아보자. 변수는 메모리 공간에 어느 지점을.. 더보기
형 변환 - 형 변환 자료형은 프로그램에서 사용되는 변수와 상수에 대한 규정이다. 그렇다면, 한번 정해진 자료형은 변환할 수 없는가? 그렇지 않다. 일시적으로 형을 변환시키는 명시적 형 변환이라 한다. - 소스 코드 예시 int a = 10; float b = 5.0f; a = b; 컴파일 시 경고가 뜬다. 자료형이 일치하지 않기 때문에 경고가 발생한다. 이때 형 변환을 하면 경고가 사라진다 a = b => a = (int) b; (변환할 자료형) 변환할 변수나 값; 경고가 사라진 것을 볼 수 있다. 변수이외에 상수에도 형 변환이 가능하다. Ex> int a = (int) 10.0f; 하지만 이건 너무 실용적이지 못한 행동이니 자제하자. 그렇다면 명시적 이외에 암묵적 형 변환은 연산시에 서로 다른 자료형인 경우 .. 더보기