본문 바로가기

반응형

pointer

(24)
[C언어] String Array #include void printStrings1(char (*arr)[20], int size){ for(int i = 0; i < size; ++i){ printf("%s\n", &arr[i][0]); // &arr[i][0] == arr[i] } } void printStrings2(char **arr, int size){ for(int i = 0; i < size; ++i){ printf("%s\n", arr[i]); // arr[i] == &arr[i][0] } } int main(void){ char cities1[][20]={ "Seoul", "Los Angeles", "Rio de Janeiro", "Moscow", "Paris" }; char *cities2[] = { "Seoul", "..
[C언어] swap 1 (포인터) #include void swap(int *, int *); int main(void){ int a = 100, b = 200; printf("a : %d, b : %d\n", a, b); swap(&a, &b); printf("a : %d, b : %d\n", a, b); return 0; } void swap(int *x, int *y){ int tmp = *x; *x = *y; *y = tmp; }
[C언어] 배열(Array)과 포인터(Pointer) 2 #include int main(void){ int nums[] = {1, 2, 3, 4, 5}; int *p; p = nums; printf("nums[i] :\n"); for(int i = 0; i < 5; ++i) printf("%d ", nums[i]); printf("\n"); printf("*(nums + i) :\n"); for(int i = 0; i < 5; ++i) printf("%d ", *(nums + i)); printf("\n"); printf("*(p + i) :\n"); for(int i = 0; i < 5; ++i) printf("%d ", *(p + i)); printf("\n"); printf("p[i] :\n"); for(int i = 0; i < 5; ++i) prin..
[C언어] 실습: '0' 입력할 때까지 정수를 입력받는 프로그램 구현하기 '0' 입력할 때까지 정수를 입력받는 프로그램 구현하기 (단, 배열의 크기는 5로 지정한다.) #include #include // malloc(), free() int main(){ int *p = (int*)malloc(5 * sizeof(int)); // '4byte(int) * 5'만큼의 공간을 할당한다. int num; // 입력받는 data값을 저장한다. int index = 0; for(int i = 0; i < 5; ++i){ printf("data : "); scanf("%d", &num); if(num == 0) break; // 'num'에 '0'이 입력되면 반복문을 종료한다. p[index++] = num; // p[index]에 num을 저장한다. } for(int i = 0; i..
[C언어] 실습: 배열에 저장된 정수의 합 출력하기 배열에 저장된 정수의 합 출력하기 #include void add(int *arr, int *sum); int main(){ int arr[5] = {1, 2, 3, 4, 5}; int sum = 0; add(arr, &sum); // arr[]는 배열이기 때문에 첫번째 element의 주소값을 가지고 있다. printf("합 : %d\n", sum); return 0; } void add(int *arr, int *sum){ for(int i = 0; i < 5; ++i){ *sum += arr[i]; } }
[C언어] 실습: 좌표값(x, y) 출력하기 좌표값(x, y) 출력하기 #include typedef struct point{ int x; int y; } Point; void printp(Point p); // 좌표값을 출력하는 함수 int setX(Point *p); // x의 좌표값을 변경하는 함수 int main(){ Point p1 = {2, 4}; // Point 구조체의 변수 p를 선언하고 초기화해준다. printf("x : %3d, y : %3d\n", p1.x, p1.y); p1.x = 10; p1.y = 20; printp(p1); p1.x = setX(&p1); // p1의 값을 바꾸기 위해 인자에 주소값을 전달한다. printp(p1); return 0; } void printp(Point p){ printf("x : %3d,..
[C언어] 실습: 이름을 검색하여 해당하는 연락처 출력하기 (구조체) 이름을 검색하여 해당하는 연락처 출력하기 (구조체) #include #include // strcmp() #define STR_SIZE 20 typedef struct book{ char name[STR_SIZE]; char phone[STR_SIZE]; int ringtone; } PhoneBook; // 구조체 struct book을 phoneBook으로 선언한다. int main(){ PhoneBook pb[] = { // 구조체의 변수 pb[]를 생성하고, 초기화 해준다. {"홍길동", "010-1111-1111", 1}, {"장보고", "010-2222-2222", 2}, {"김유신", "010-3333-3333", 3}, {"이순신", "010-4444-4444", 4}, {"유관순", "01..
[C언어] 실습: 구조체 'car'로 자동차, 속도, 연료 상태 출력하기 구조체 'car'로 자동차, 속도, 연료 상태 출력하기 ​ 조건1. Accel을 밟으면 속도는 10km/s씩 증가하고, 연료는 2%씩 감소 조건2. Break를 밟으면 속도는 10km/s씩 감소 조건3. 자동차 최대 속도는 200km/s #include #define MAX_SPEED 200 // 최고 속도 #define STEP 2 // 연료 소모량 #define FULL 10 // 증감 속도량 struct car { // 구조체 car 선언 char name[20]; // 자동차 int speed; // 현재 속도 int gas; // 현재 연료 }; typedef struct car Car; // 모든 함수에서 사용하기 위해 전역변수로 만들어준다. // struct car == Car void ca..

반응형