본문 바로가기

const

포인터 기본 응용 함수는 필요에 따라 x포인터를 리턴한다. ex)char *strcpy(char *des, char *src) char string1[80]' char string2[] = "Hanbit online"; char *sp; sp = strcpy(string1, string2); printf("%s\n",string1); printf("%s\n",sp); printf("%s\n",strcpy(string1, string2));//printf함수 내에서 바로 복사가 가능 ●NULL포인터 NULL포인터는 0번지를 가리키는 것이 아니라 아무 것도 가리키지 않음을 의미한다.(실제 NULL의 숫자값은 0이다.) NULL포인터 변수는 NULL로 초기화 하여 예상치 못한 프로그램의 오류를 방지한다. ●const 포인터 변.. 더보기
상수화 시키는 const문 ●const const 문은 #define 과 함께 상수를 정의 하는 키워드 이다. const 는 #define과 비슷하지만 #define 보다 뛰어난 기능을 한다. const 는 const 뒤에 오는 변수가 수정되지 못하도록 컴퍼일러에게 알려주기 위하여 사용된다. 이것은 또한 constenl에 오는 인수가 함수에서 수정되는 것을 막아준다. #define은 간단한 상수만을 정의할 수 있다. 하지만 const문은 구조체 등을 포함한 거의 모든 데이터형의 C 상수를 정의할 수 있다. ex)struct box{ int width,heingt; }; const vox pink_box = {1.0, 4.5}; const 는 즉시 검사 되는 것이 #define과 틀리다고 할 수 있다. 더보기
const 멤버 함수 cosnt 멤버 함수 const 멤버 함수는 2가지의 특별한 특징을 갖는다. 1.멤버 변수의 값 변경을 허용하지 않는다. 2.멤버 변수 값의 변경에 대한 기회제공도 불가능 하다. 아래 구문은 에러를 이르키는 구문이며 에러 부분에 주석처리된 코드를 넣으면 해결이 가능하다. class Count { Count() : cnt{0}//간접적으로 멤버변수를 조작할수 있는 동기를 부여하기 때문에 에러가 난다. int* GetPtr() const//const int* Getptr() const //const를 맨 압에 붙이게 되면 포인터가 가리키는 대상가지 상수화 시켜버린다. 접근은 가능하지만 변경은 불가능하다. { return &nct;//compile Error } void increment() { cnt++; .. 더보기
const 멤버 변수 & 멤버 이니셜라이져 이 글은 열혈강의 C++ 강의를 들으면서 공부를 하면서 정리한 글이다. cosnt : const 키워드를 붙이고 변수 또는 함수를 기제하면 그 값을 상수화 시켜서 변경을 불가능하게 만든다. 이는 프로그램을 보다 안정적이게 만들어 주는 기능이다. 특히 C++에서는 객체개념이 들어가기 때문에 const가 생각보다 유용하게 사용될수도 있다.특히 C++에서는 객체개념이 들어가기 때문에 const가 생각보다 유용하게 사용될수도 있다. 기본적으로 문법은 다음과 같다. 포인터변수를 사용하게 되면 위치에 따라 상수화 되는 내용이 달라진다. int *const pt = &a; ==> pt가 가리키는 a의 내용을 상수화 한다. 물론 a라는 변수로 내용 변경에 대한 제약은 받지 않는다. 하지만 *pt = 10; 과 같은 식.. 더보기