[C++] const 포인터
·
C++/Basic
변수의 값을 포인터 상수로 int age = 39; int n = 20; const int *pt = &age; 이 선언은 포인터 pt가 const int를 지시하고 있다. 포인터인 pt로는 그 값을 변경할 수 없다. 하지만 age의 값은 변경할 수 있기에 age를 바꾸면 pt의 값도 변경 포인터의 주소는 변경할 수 있다. ex) pt = &n; 변수의 값과 주소 모두 바꿀 수 없게 int age = 39; int n = 20; const int * const pt = &age; 이 경우에는 값과 주소 모두 바꿀 수 없다. int * const pt = &age;로 처음에 선언하면 주소만 바꿀 수 없게 할 수도 있다.
함수 포인터
·
C++/Basic
double pam(int); double (*pf)(int); pf = pam; double y = pf(5); 함수포인터에 함수를 넣는다. - 함수포인터와 함수는 시그내처와 리턴형이 일치해야 한다. http://tcpschool.com/cpp/cpp_function_pointer 코딩교육 티씨피스쿨 4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등 tcpschool.com
포인터와 레퍼런스의 차이
·
C++/Basic
1. NULL의 사용여부가 다르다. - 우선 포인터는 NULL값을 허용한다. int *p = NULL; 하지만 초기화를 꼭 해주어야 된다. 초기화를 하지 않고 사용을 할 경우 에러가 나게 된다. NULL을 참조하고 있는 변수에 접근할 때 에러가 발생하므로 p = 110;//X if(p) p = 110;//O 포인터가 NULL을 참조하고 있지 않을 때에만 값을 대입할 수 있도록 하는 것이 좋다. - 레퍼런스는 NULL값을 허용하지 않는다. 2. 참조 대상 할당 및 접근 - 포인터는 할당할 때에 참조 대상에 대해서 &연산을 통해 주소값을 할당합니다.- 레퍼런스는 참조 대상자체를 할당합니다. int a = 100; int *p = &a;// 포인터는 주소를 할당 int &r = a; // 레퍼런스는 대상을 직..
call by value와 call by reference의 차이
·
C++/Basic
주소 연산자(&)와 역참조 연산자(*) int value = 3; //*를 변수를 선언할 때 타입 뒤(혹은 변수명 앞)에 붙여서 주소 타입의 변수로 지정 int *ptr = &value; //&는 변수 앞에 붙여서 해당 변수의 주소를 가져옴 //*를 주소값 변수 앞에 붙여서 해당 주소에 존재하는 변수에 접근 *ptr = 4; *와 &는 각각 단항 연산자로서 다음과 같은 역할을 한다. 주소 연산자 (address-of operator) &value &연산자는 해당 변수의 주소를 가져오는데 사용된다. 역참조 연산자 (dereference operator) *ptr 주소값인 ptr 변수의 주소에 존재하는 value 값에 접근할 수 있다. ptr는 &value와 같고 *ptr는 value와 같다. Call by..
문자열 관리
·
C++/Basic
#include str1.substr(i, n); - 해당 문자열에서 i번부터 n개를 반환한다. - 을 선언해야된다.
알파벳 대소문자 관리
·
C++/Basic
#include isalpha(str[i]) - 알파벳이 대문자이면 2 소문자이면 1 그 외면 0을 리턴하는 함수 - 을 선언해야된다. #include transform(str1.begin(), str1.end(), str1.begin(), ::tolower); - 문자열의 처음부터 끝까지 소문자로 치환 - ::toupper를 사용하면 대문자로 치환한다. - 을 선언해야된다.