분류 전체보기 26

구조체를 가리키는 포인터

내가 제일 싫어하는 부분이다. 아직 완벽히 이해하지 못했다. #include struct date { int month; int day; int year; }; struct student { int number; char name[20]; double grade; struct date* dob; }; int main(void) { struct date d; struct student s; s.dob = &d; //구조체 변수 s의 멤버인 포인터 dob에 구조체 d의 주소를 대입하였다. printf("학번을 입력해주세요: "); scanf_s("%d", &s.number); printf("이름을 입력해주세요: "); scanf_s("%s", s.name); printf("학점을 입력해주세요: "); sca..

coding/C언어 2021.11.19

C프로그래밍 구조체 이해하기. 2차원 공간 상의 점의 거리 구하기.

구조체란, 서로 다른 종류의 데이터를 하나로 묶기위해 사용하는 자료형이다. 예를 들어, 학생의 정보를 구조체로 묶어보자. struct student { int number; char name[10]; double grade; } 배열이 여러 개의 같은 자료형을 하나로 묶는 것이라면 구조체는 서로 다른 자료형들을 하나로 묶는 것이다. 2차원 공간 상의 점을 구조체로 표현하기 사용자로부터 두 점의 좌표를 입력받아서 두 점사이의 거리를 계산하여 보자. 점의 좌표를 구조체로 표현한다. 두 점 사이의 거리를 구하는 공식으로 계산한다. #include #include struct point { int x; int y; }; int main(void) { struct point p1, p2; int xdiff, yd..

coding/C언어 2021.11.18

C프로그래밍 함수 이해하기. 섭씨 온도를 화씨 온도로, 그 반대로 변환하는 프로그램 작성. 난수함수로 동전던지기 게임 만들기;

#include void printOptions() { printf(" 'c' 섭씨온도에서 화씨온도로 변환 \n"); printf(" 'f' 화씨온도에서 섭씨온도로 변환 \n"); printf(" 'p' 종료\n"); } double C2F(double c_temp) { return 9.0 / 5.0 * c_temp + 32; } double F2C(double f_temp) { return(f_temp - 32.0) * 5.0 / 9.0; } int main(void) { char choice; double temp; while (1) { printOptions(); printf("메뉴에서 선택하세요."); choice = getchar(); if (choice == 'q') break; else if..

coding/C언어 2021.11.18

C프로그래밍 포인터 이해2 자율주행자동차 센서에서 장애물까지의 거리

포인터도 배열 이름처럼 간주될 수 있고 배열과 똑같이 사용할 수 있다. #include int main(void) { int a[] = { 10, 20, 30, 40, 50 }; int* p; p = a; printf("a[0]=%d a[1]=%d a[2]=%d \n", a[0], a[0], a[0]); printf("p[0]=%d p[1]=%d p[2]=%d \n", p[0], p[1], p[2]); p[0] = 60; p[1] = 70; p[2] = 80; //포인터를 마치 배열의 이름처럼 사용하여 배열 요소에 값을 대입한다. p와 a는 똑같은 곳을 가리키고 있기 때문에 p를 사용하든지 a를 사용하든지 결과는 똑같다. printf("a[0]=%d a[1]=%d a[2]=%d", a[0], a[1], ..

coding/C언어 2021.11.16

C 프로그래밍 포인터 이해하기

포인터는 C언어가 Low레벌 언어의 특성을 지니게 해준 녀석이다. 왜냐하면 포인터를 이용하면 메모리에 직접 접근이 가능하기 때문이다. 포인터 변수란 메모리의 주소 값을 저장하기 위한 변수이다. * 포인터 변수와 & 연산자에 대해서 알아보자! int main(void) { int num = 7; int * pnum.; //포인터 변수 pnum의 선언 pnum = # //num의 주소 값을 포인터 변수 pnum에 저장 } * pnum = 20; printf("%d", *pnum); 위의 코드를 해석하면 다음과 같다. "포인터 변수 pnum이 가리키는 메모리 공간인 변수 num에 정수 20을 저장해라!" "포인터 변수 pnum이 가리키는 메모리 공간인 변수 num에 저장된 값을 출력해라!" 예제를 통해..

coding/C언어 2021.11.16