[ 언어 및 문법 ]/C, C++

    [C++] 정적 변수(Static) vs 전역 변수(Global) , const

    공통점 (지역 변수와 달리) 프로그램이 끝날 때까지 할당된 변수의 값과 메모리가 유지됨. 차이점 정적 변수 (Static Variable) 선언된 해당 파일, 함수 내에서만 접근 가능 ==> 내부 링크 초기화는 단 한번만 가능 (소스 파일에서만 초기화 가능) 선언 시 : static 키워드를 반드시 사용해야 함 전역 변수 (Global Variable) 해당 프로그램의 모든 파일, 함수에서도 접근 가능 ==> 외부 링크 필요할 때마다 초기화를 언제든 몇번이든 가능 다른 파일에서 접근하지 않는 전역 변수 선언시에는 그냥 main 함수 바깥에 선언해주면 됨 다른 파일에서 접근하려면 extern 키워드로 변수를 선언해야 함 // 전역 변수 사용 ex (외부 링크 시) int g_value; // 본문 내 선언..

    [C++] 포인터, 주소연산자(&), 배열, 동적할당, 자료형 + vs 참조형 변수(&)

    &도 /처럼 연산자! 타입(자료형) 에 따라서 연산 결과가 다르다 즉, 일반 배열과 동적할당한 배열의 자료형이 다르므로, 같은 배열이어도 &연산 결과는 다름! int myarr[10]; // type : int [] int *newarr = new int[10]; // type : int * arr vs &arr 가리키고 있는 것(개념) 은 다른데, 출력 값은 같다 if 동적할당 X 배열 => arr == &arr arr : 배열의 첫번째 요소(arr[0])를 가리키고 있는 포인터 &arr : 전체 배열 자체의 포인터 따라서 arr+1 과 &arr+1 의 값은 다르다! 배열과 배열 주소의 관계 https://hashcode.co.kr/questions/936/%EB%B0%B0%EC%97%B4-%EC%9D..

    [C++] string 클래스와 문자열 입출력 (cin, getlline(), c_str(), atoi())

    C++의 클래스 다양한 문자열 메소드를 제공하는 STL c_strI(), length(), copy(), compare(), begin(), end(), operator + 등 지원 C언어의 char * 문자열과 달리, 문자열 끝에 '\0' 과 같은 null이 들어가 있지 않음 string 객체 생성 방법 // 방법 1 string str1("Hello"); // 방법 2 string str1; str1 = "Hello"; // 방법 3 string str2(str1); string 문자열 입력 받기 (cin vs getline) cin : 공백 문자 만나면 입력 받기 종료 ("Hello World"에서 "Hello" 까지만 입력받음) getline() : 공백 포함 한 줄 모두 입력받음. (에 정의된 ..