Development/C, C++(556)
-
Ex37-포인터 변수를 이용하여 문자 배열에 접근하기
포인터 변수를 이용하여 문자 배열에 접근하기 메모리 구조 소스코드 int main(void) { char array[ ]={'A', 'B', 'C', 'D', 'E'}; char* p=NULL; p=array; printf("%c %c %c %c %c\n", p[0], p[1], p[2], p[3], p[4]); printf("%d %d %d %d %d\n", p[0], p[1], p[2], p[3], p[4]); printf("%c %c %c %c %c\n", *(p+0), *(p+1), *(p+2), *(p+3), *(p+4)); printf("%d %d %d %d %d\n", *(p+0), *(p+1), *(p+2), *(p+3), *(p+4)); return 0; } 출력결과
-
Ex36-문자 데이터 저장 및 변경하기 위한 문자 배열 생성
문자 데이터 저장 및 변경하기 위한 문자 배열 생성 학습내용 문자상수 자체는 변수가 아니므로 그 값을 변경할 수 없습니다. 문자를 변경하고자 할 경우 변수 선언후 저장하거나 배열에 문자를 저장하는 문자 배열을 생성해야 합니다. 소스코드 #include int main(void) { char array[ ]={'A', 'B', 'C', 'D', 'E'}; // 문자 배열 선언 // 문자 상수 printf("문자 상수 : %c %c %c %c %c\n",'A', 'B', 'C', 'D', 'E'); // 문자 배열 printf("문자 배열 변경 전 : %c %c %c %c %c\n", array[0], array[1], array[2], array[3], array[4]); //문자 배열의 값 변경 arra..
-
Ex35-포인터 배열과 포인터 변수의 차이 확인
포인터 배열과 포인터 변수의 차이 확인 배열 포인터 메모리 구조 int array[2][3]={10,20,30,40,50,60}; // 배열 포인터 변수 int (*p)[3]; p=array; 포인터 배열 메모리 구조 int a=10, b=20, c=30; //포인터 배열 int* ap[3]; ap[0]=&a; ap[1]=&b; ap[2]=&c; 소스코드 #include int main(void) { int a=10, b=20, c=30; //포인터 배열 int* ap[3]; int array[2][3]={10,20,30,40,50,60}; // 배열 포인터 변수 int (*p)[3]; ap[0]=&a; ap[1]=&b; ap[2]=&c; printf("%x %x %x \n", &a, &b, &c); p..
-
Ex34-일반 배열에는 값을 저장하지만, 포인터 배열은 주소를 저장
일반 배열에는 값을 저장하지만, 포인터 배열은 주소를 저장합니다. 학습내용 일반 배열 값을 저장하는 배열 포인터 배열 주소를 저장하는 배열 메모리 구조 소스코드 #include int main(void) { int a=10, b=20, c=30; //포인터 배열 선언 int* ap[3]={NULL, NULL, NULL}; //포인터 배열의 요소로 주소를 저장하여 체계적으로 관리할 수 있습니다. ap[0]=&a; ap[1]=&b; ap[2]=&c; printf("%x %x %x \n", &a, &b, &c); // ap[i] == *(ap+i) printf("%x %x %x \n", ap[0], ap[1], ap[2]); // ap[0] == *(ap+0) printf("%x %x %x \n", *(ap+..
-
Ex33-포인터 변수의 개수가 많아지는 단점을 보완하기 위한 방법으로 포인터 배열을 사용
포인터 변수의 개수가 많아지는 단점을 보완하기 위한 방법으로 포인터 배열을 사용 학습 내용 포인터 변수를 세 개 선언하고 일반 변수의 주소를 저장하고 있는데 저장해야할 일반변수의 주소가 많아지게 되면 포인터 변수도 이에 따라 많아지게 되는 문제점이 있습니다. 이점을 포인터 배열이 해결해 주고 있습니다. 소스코드 #include int main(void) { int a=10, b=20, c=30; //포인터 변수 선언 int* ap=NULL; int* bp=NULL; int* cp=NULL; // 포인터 변수가 많아지면 관리가 어려워 집니다. ap=&a; bp=&b; cp=&c; printf("%d %d %d \n", a, b, c); // 10, 20, 30 출력 printf("%d %d %d \n", ..
-
Ex03-구조체 변수 초기화
구조체 변수 초기화 소스코드 #include struct point{ int x; int y; }; int main(void){ // 구조체 변수의 선언과 동시에 초기화 struct point sp1={10, 20}; // 구조체 변수의 초기화 printf("%d %d \n", sp1.x, sp1.y); return 0; } 출력결과