C를 사용하다 보면 문자열을 입력 받는 경우가 있는데 입력 받는 방법이 여러가지 있다. 방법이 여러가지고 사용법도 비슷해 헷갈리는데 한 번 정리해보자. 목차 문자열로 입력을 받는 경우 scanf()로 입력을 받는 경우 gets()로 한 줄의 문자열 입력 fgets()로 입력을 받는 경우 개행 문자로 인해 gets 함수가 입력을 못하는 경우 1. 문자열로 입력을 받는 경우 #include int main(void) { char* dessert = "banana"; printf("오늘 후식은 %s입니다.\n", dessert);// 오늘 후식은 banana입니다. printf("banana p is % p\n", dessert);// banana p is 00007FF6C9DC9C24 printf("dess..
지금 현재 72%정도 들었고 C에서 중요한 포인터, 포인터 배열, 파일입출력, 구조체, Storage Classes 등 중요한 내용들 위주로 들었습니다. 비전공자에 웹 개발자로 1년8개월 가량 준비하다가 좀 더 공부하고 성장하고 경쟁력을 갖추기 위해서 로우레벨의 언어를 공부해야겠다 싶어서 알아보다가 따배씨 강의의 평이 좋아서 수강하였습니다. 강의을 들으면서 좋았던 점은 디테일입니다. 시간을 내서 여유를 가지고 들으면 다른 곳에서 들을 수 없는 내용들이 담겨져 있어서 좋았습니다. 이런 디테일이 실무에서 많이 쓰이는지는 모르겠지만 이것들이 쌓이면 좀 더 좋은 개발자가 될 거라 생각합니다. 또한 강의에 강의 도우미가 있어서 궁금한 점이 있으면 편하게 물어볼 수 있고 빠르고 자세하게 답을 해줍니다. 그리고 이전..
C에 입문하면 포인터라는 장벽이 있다. 거기에 2차원 포인터 배열 들어가면 머리 속이 뒤죽박죽이다. 그래서 나의 머리를 정리하게 위해 포인터 배열을 정리해보았다. 포인터의 산술연산을 사용하는 경우 포인터가 배열인 것 처럼 사용할 수 있고 연산도 포인터와 배열이 비슷하다. 이 두가지의 공통점과 차이점을 살펴보자 1차원 배열과 포인터 우선 아래 예제를 살펴보자. #include int main() { int arr[10]; int num = sizeof(arr) / sizeof(arr[0]); for (int i = 0; i < num; ++i) arr[i] = (i + 1) * 100; int* ptr = arr; printf("%p %p %p\n", ptr, arr, &arr[0]); // 0x7ffda..
포인터 정의 및 사용 변수를 선언한다는 것은 변수의 이름을 통해서 메모리공간을 사용하는 것이다. 프로그램을 효율적으로 짜기 위해서는 메모리가 어디에 위치해 있고 얼마나 많은 메모리를 사용해야하는지 알아야 한다. 크기가 큰 프로그램을 만들어서 많은 양의 데이터를 사용하면 많은 양의 데이터를 복사해서 여러 곳에서 사용하는 것은 낭비이다. 이렇게 하면 데이터를 복사하는데 시간도 걸리고 메모리도 낭비된다. 데이터가 어디에 있는지 알고 프로그램을 작성하면 프로그램이 효율적으로 작동할 것이다. 포인터는 메모리 주소를 저장하여 가리키는 간접적으로 역활을 한다. 포인터를 선언해줄 때는 아래와 같이 변수 명 앞에 *를 붙여 사용한다. int a = 7; int *a_ptr = &a; double b = 2; double..
- Total
- Today
- Yesterday
- Til
- 초아
- Python
- JS
- 20.03.11.(목)
- 포인터
- 라즈베리파이
- C
- Kernel
- Linux
- tailwindcss
- 자바스크립트
- CSS
- 재미있는
- 미라클모닝
- JSON
- QT
- 오늘의 공부
- variable
- JavaScript
- var
- SQL
- NestJS
- js syntax
- opencv
- 모닝독서
- 스타벅스
- raspberrypi
- yocto
- tailwind
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |