본문 바로가기

프로그래밍/C언어22

와일드 포인터 #include void main() { int *n1 = 0; int *n2; } 과 같은 경우에 n1은 널포인터, n2는 와일드 포인터 라고 한단다. 용어적인 이야기인듯. 2010. 3. 17.
단일 연결리스트(linked list) 스택, 큐에 대해서 무한의 자료를 저장하고 싶을때(메모리의 허용 범위 내)사용한다. 개념은 A,B,C,D라는 자료가 존재 할때에 Head(orTail)이 A의 주소를, A가 B의 주소를 B가 C의 주소를 C가 D의 주소를 D가 Tail(orHead)의 주소를 가르킨다고 볼 수 있다. 추가적인 AA가 생겼을때 특정-예를 들어 A뒤- 위치에 삽입 하고자 할떄 A의 주소가 B였던 것을 AA로 가르키게 하고 AA의 주소는 B를 가르키게 한다면 Head->A->AA->B->C->D->Tail 이 되는 것이다. 또는 값을 삭제 하고자 할때에는 삭제 노드는 꼬리의 다음 위치로 잡아 주고 꼬리의 다음 위치를 삭제 노드의 다음 주소 삭제노드 삭제 소스 내용이 조금 긴 관계로 main.cpp파일을 첨부합니다. 2010. 3. 12.
문자열 함수들 str___ 소스참조 #include #include #include void main() { char ch1[20] = "TEST123"; char ch2[20] = "TEST13"; // strcmp(인자1, 인자2);문자열 비교 함수 // 동일하다면 0 리턴, 좌측인자가 작으면 -1 크다면 1 리턴 printf( "strcmp : %d\n", strcmp(ch1,ch2) );// -1 값 나옴 문자의 갯수보다 단계별로 높은 것을 찾으면 리턴 // strcpy(인자1, 인자2);문자열 복사(덮어쓰기) 함수 // 우측인자의 문자열을 좌측인자로 삽입 strcpy(ch2, ch1); printf( "strcpy : %s\n", ch2 );// TEST123 출력 // strcat(인자1, 인자2)문자열 복사(붙혀쓰기).. 2010. 3. 11.
enum 열거형 상수 라고하는 enum에 대해서 알아 보자. enum season { summer=10, winter}; typedef enum Temp { A, B, C, D } T; 처럼 선언하고 T number; printf( "%d\n", summer ); 다음과 같은 형식으로 사용한다. 기본적으로 초기값 선언을 안해주면 0부터 1씩 증가 선언을 해주면 그 이후부터 1씩 증가 한다. winter = 11 A = 0 D = 3 이라고 보면 된다. 2010. 3. 11.
전처리기(4) 조건부 컴파일 지시자에 대해서 알아 보자. #ifdef - #endif #include #define MAX 10 void main() { #ifdef MAX // MAX가 지정이 되어 있기 때문에 실행한다. printf( "%d\n", MAX ); #endif } 실행 결과 = 10 #ifndef - #endif #include void main() { #ifndef MAX // MAX가 지정이 되어 있지 않기 때문에 실행한다. printf( "%d\n", 10 ); #endif } 주로 ifndef는 한번만 실행하기 위해서(특히 헤더파일 추가에 대해서) 많이 사용하게 되는데. 사용은 다음과 같이 하면 된다. #ifndef _TEST_H_ #define _TEST_H_ // 이제부터는 아무리 많이 헤더.. 2010. 3. 10.
전처리기(3) 매크로 상수라는게 존재 하는데 이전에 포스팅 했었던 __FILE__, __LINE__ 와 같은 개념이다. 따로 소스코드와 결과를 올리기 보단 그 이외에 또 무엇이 있는지만 살펴 보자. __TIME__ 현재 컴파일 되는 시간 __DATE__ 현재 컴파일 되는 날짜 __PASCAL__ 컴파일 옵션 중 -p 옵션이 설정되어 PASCAL형으로 호출을 하게 될때 사용 한다고 한다. __CDECL__ 위와 반대의 경우인데 -P옵션이 설정 되어 있지 않을때, 즉 C형 호출을 하게 될때 사용한다고함 _Windows 컴파일을 Windows 방식으로 할 때 이 매크로가 정의된다. 솔직히 PASCAL, CDECL, _Windows 는 정확히 뭔 말인지 잘 모르겠다...... 2010. 3. 10.