Development/C, C++(556)
-
Ex-구조체 변수간 산술연산 불가능
구조체 변수간 산술연산 불가능 구조체 변수는 대입연산만 가능 소스코드 #include struct point{ int x; int y; }; int main(void){ struct point sp1={10, 20}; struct point sp2={0, 0}; sp2+sp1; // 구조체 변수 간의 덧셈 연산, 에러 발생 sp2-sp1; // 구조체 변수 간의 뺄셈 연산, 에러 발생 return 0; } 출력결과 Statement has no effect 'sp2-sp1'
-
Ex - 구조체 변수들간 복사
구조체 변수들간 복사 소스코드 #include struct point{ int x; int y; }; int main(void){ struct point sp1={10, 20}; struct point sp2={0, 0}; sp2=sp1; // 구조체 변수 p2에 p1을 복사 printf("%d %d \n", sp1.x, sp1.y); printf("%d %d \n", sp2.x, sp2.y); return 0; } 출력결과
-
Ex-구조체 변수의 초기화
구조체 변수의 초기화 학습내용 기본 자료형뿐만 아니라 구조체(사용자 정의 자료형)도 변수 선언과 동시에 초기화를 할 수 있습니다. 선언과 동시에 초기화를 하면 코드 수도 줄일 수 있고 일시적으로 구조체 변수에 쓰레기 값이 저장되는 것을 방지할 수 있습니다. 소스코드 #include struct point{ int x; int y; }; int main(void){ struct point sp1={10, 20}; struct point sp2={40, 50}; struct point sp3={0, 0}; sp3.x=sp2.x - sp1.x; sp3.y=sp2.y - sp1.y; printf("%d %d \n", sp3.x , sp3.y); return 0; } 출력결과 결과 도식도
-
Ex-입력받은 데이터를 구조체의 데이터로 저장하기
입력받은 데이터를 구조체의 데이터로 저장하기 소스코드 #include // 구조체 정의 struct group{ int x; double y; }; int main(void){ struct group s1; // 구조체 변수 s1 선언 fflush(stdout); scanf("%d %lf", &s1.x, &s1.y); // 데이터 저장 printf("s1.x의 값 : %d \n", s1.x); printf("s1.y의 값 : %lf \n", s1.y); return 0; } 출력결과
-
Ex-구조체 변수 사용 방법
구조체 변수 사용 방법 구조체 변수로 멤버 변수에 접근하기 메모리 구조도 소스코드 #include // 구조체 정의 struct group{ int x; double y; }; int main(void){ // 구조체 변수: 멤버변수에 접근하는 변수 struct group s1; // 구조체 변수 s1 선언 s1.x=10; // 구조체 변수로 멤버 변수 접근 s1.y=123.45678; // 구조체 변수로 멤버 변수 접근 printf("s1.x의 값 : %d \n", s1.x); printf("s1.y의 값 : %lf \n", s1.y); return 0; } 출력결과
-
Ex-void형 포인터 이용시 가장 중요한 부분은 강제 형변환
void형 포인터 이용시 가장 중요한 부분은 강제 형변환 학습내용 void형 포인터 변수 모든 자료형의 주소를 저장할 수 있는 포인터 변수 void형 포인터를 통해 주소가 아닌 값을 참조할 수 없습니다. 값을 참조하려면 강제 형변환을 해야 합니다. 소스코드 #include void main(){ char c=3; double d=3.14; void* vp=NULL; vp=&c; printf("vp가 저장한 주소 : %x\n", vp); printf("*vp의 값 : %d\n", *(char*)vp); // 강제 형변환(char *) vp=&d; printf("vp가 저장한 주소 : %x \n", vp); printf("*vp의 값 : %lf\n", *(double*)vp); // 강제 형변환(double..