Development/C, C++(556)
-
Ex27-포인터 변수 p를 이동시켜 배열의 메모리 공간에 접근하기
포인터 변수 p를 이동시켜 배열의 메모리 공간에 접근하기 *p=10; printf("%d %d %d \n", p[0], p[1], p[2]); p=p+1; *p=20; // p[0]=20; printf("%d %d %d \n", p[-1], p[0], p[1]); p=p+1; *p=30; // p[0]=30; printf("%d %d %d \n", p[-2], p[-1], p[0]); 소스코드 #include int main(void) { int array[3]; int* p=NULL; p=array; *p=10; printf("%d %d %d \n", p[0], p[1], p[2]); printf("----------\n"); p=p+1; // 포인터 이동 *p=20; // p[0]=20; printf..
-
콘솔 비표준 입출력 함수
콘솔 비표준 입출력 함수 헤더파일: conio.h 버퍼를 사용하지 않습니다. 데이터를 일괄해서 처리하는 경우에는 비효율적입니다. 함수의 원형기능헤더파일int getch (void);키보드로 부터 한 문자를 입력 (입력 화면에 입력 문자 출력안함)conio.hint getche (int c);키보드로 부터 한 문자를 입력 (입력 화면에 입력 문자 출력.)conio.hint putch (int c);모니터에 한 문자를 출력conio.hint kbhit (void);키보드상에 있는 키가 눌려졌는지를 조사 (누른 경우 0이 아닌 수를 반환)conio.h 비표준 입출력 함수 장점 비표준 입출력 함수는 버퍼를 사용하지 않기 때문에 표준 입출력 함수들에 비해 속도가 빠릅니다. 비표준 입출력 함수 단점 여러 개의 문자..
-
Ex26-포인터 변수 p를 고정한 상태에서 배열의 메모리 공간에 접근 하기
포인터 변수 p를 고정한 상태에서 배열의 메모리 공간에 접근 하기 메모리 구조도 포인터 변수를 고정시킨 상태에서 배열의 메모리 공간의 초기화하고 있습니다. *p = 10; printf("%d %d %d \n", p[0], p[1], p[2]); *(p+1)=20; printf("%d %d %d \n", p[0], p[1], p[2]); *(p+2)=30; printf("%d %d %d \n", p[0], p[1], p[2]); 소스코드 #include int main(void) { int array[3]; int* p=NULL; p=array; *p = 10; printf("%d %d %d \n", p[0], p[1], p[2]); // 10 ? ? printf("----------\n"); *(p+1)..
-
Ex25-포인터 변수 p에 저장되는 배열의 주소가 다양하게 표현될 수 있는 것 확인하기
포인터 변수 p에 저장되는 배열의 주소가 다양하게 표현될 수 있는 것 확인하기 메모리 구조도 p=array; // p=&array[0]; printf("%d %d %d \n", p[0], p[1], p[2]); printf("%d %d %d \n", *p, *(p+1), *(p+2)); p=p+1; // p=&array[1]; printf("%d %d %d \n", p[-1], p[0], p[1]); printf("%d %d %d \n", *(p-1), *p, *(p+1)); p=p+1; // p=&array[2]; printf("%d %d %d \n", p[-2], p[-1], p[0]); printf("%d %d %d \n", *(p-2), *(p-1), *p); 소스코드 #include int ma..
-
Ex24-포인터 연산을 이용하여 배열에 접근하기
포인터 연산을 이용하여 배열에 접근하기 메모리 구조도 p=array; printf("%d %d %d \n", p[0], p[1], p[2]); printf("%d %d %d \n", *p, *(p+1), *(p+2)); p=array+1; printf("%d %d %d \n", p[-1], p[0], p[1]); printf("%d %d %d \n", *(p-1), *p, *(p+1)); p=array+2; printf("%d %d %d \n", p[-2], p[-1], p[0]); printf("%d %d %d \n", *(p-2), *(p-1), *p); 소스코드 #include int main(void) { //배열의 이름은 배열의 시작 주소 int array[3]={10, 20, 30}; //포인..
-
Ex23-포인터 변수와 배열의 크기 차이
포인터 변수와 배열의 크기 차이 모든 포인터 변수는 크기가 4byte로 고정되어있고 배열은 배열 길이에 따라 크기가 달라집니다 소스코드 #include int main(void) { int array[3]={10, 20, 30}; int* p=NULL; p=array; // p=&array[0]; 포인터 변수에 배열의 시작 주소를 저장 printf("%d %d %d \n", array[0], array[1], array[2]); printf("%d %d %d \n", *(array+0), *(array+1), *(array+2)); printf("%d %d %d \n", p[0], p[1], p[2]); printf("%d %d %d \n", *(p+0), *(p+1), *(p+2)); //배열은 배열 ..