달력

12

« 2024/12 »

  • 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

드디어 마지막 미션이다!! 포인터!! 6주라는 시간이 정말 빨리 지나갔다. 

 

[기본미션] 포인터내용 블로깅하기 

 

- 포인터와 간접참조 연산자 

 

포인터와 간접참조 연산자는 

간단하게 말하면

주소를 가르키는놈 // 불러서 꺼내쓰는놈 두가지가 있는데 

 

포인터: 주소를 저장하는 변수로 일반 변수와 마찬가지로 선언후에 사용한다 

간접 참조 연산자: 포인터가 가리키는 변수를 사용할때 사용하는 연산자 

(자세한건 책잠고 p241~)

 

 

- 주소와 포인터의 차이 

. 주소는 변수에 할당된 메모리 저장 공간의 시작 주소 값 자체이고,

포인터는 그 값을 저장하는 또 다른 메모리 공간임 .. 

그래서 특정 변수의 주소값은 바뀌지 않지만 

포인터는 다른 주소를 대입해서 그 값을 바꿀수 있다. 

 

 

- **포인터의 대입 규칙 

. 가리키는 변수의 형태가 같을때만 대입 해야함 

. 형 변환을 사용한 포인터 대입은 언제나 가능함 

 

 

 

- 포인터의 크기는 주소의 크기와 같고, 포인터에 주소를 저장할때는 

가리키는 자료형이 같아야 한다. 

 

 

[선택미션] 나만의 언어로 포인터 정의하기 

 

- 임베디드 프로그래밍든 메모리에 직접 접근 시 꼭 필요한 C언어에 없어서는 안될 존재 

'혼공 학습단' 카테고리의 다른 글

혼공 학습단 3기  (0) 2020.02.07
:
Posted by Gongdile

5주차 주체는 포인터 들어가기전 배열이다! 

개인적으로 매우 매우 중요하고 잘 알고있어야 한다고 생각하는 부분이다. 

 

 

[일반 미션] 직접 정리한 키워드 정리 공유 

 

배열을 선언하고, 초기화하고, 사용 및 처리를 어떻게 하느냐가 제일 중요하다고 생각한다. 

 

 

1. 배열의 선언 

 

배열을 사용하려면 먼저 선언 부터 해야하는데 

 

(자료형) (배열명)[요소개수]; 식으로 선언한다. 

예를 들어서 아래와 같이 선언할 수 있다. 

int ary[5];

int gong[3];

 

gong 배열을 설명하자면 int형 요소가 3개인 gong이라는 이름의 배열을 선언한다는 얘기다. 

 

 

 

2. 배열의 사용 

 

배열을 선언하고 나서 배열을 사용해야 하는데 

여기서 중요한건 

 

배열을 선언할 때와 배열 요소를 사용할 때 대괄호([])안의 숫자는 의미가 다르다. 

무슨말이냐면 

 

 

(1) int gong[3];

-> int형 요소가 3개인 gong이라는 이름의 배열을 선언 

(2) gong[3] = 10;

-> gong이라는 배열에서 4번째 위치에 10이라는 값을 넣겠다. 라는 의미다. 

 

배열안에 들어간 요소를 ->배열요소(element)라고 하는데 

배열명에 첨자(index)를 붙여 표현하며 첨자는 0부터 시작한다.  (0부터 시작함!!!!! 꼭 알고 있어야함!!!)

 

 

3. 배열 초기화 

 

배열도 변수와 마찬가지로 

내가 원하는 값을 가지려면 선언과 동시에 초기화를 해야한다. 

 

배열은 중괄호({})로 묶어서 초기화한다. 

 

int gong[3]= {1,2,3};

 

- 배열 요소 개수가 생략된 형태도 있다. 

  int gong[] = {1,2,3};

 

 

**배열의 초기화는 선언 시 최초 한번만 가능하다. 

이후에 배열 요소에 일일이 값을 대입해야 하며, 

초기화 때처럼 중괄호를 사용한 대입 연산으로 한번에 값을 바꾸는 것은 불가능하다. 

 

 

 

 

 

[선택 미션] 널(null) 문자의 정의, 용도와 표기법 공유 

 

 

1. 널 문자의 정의

 

널 문자(null character): char형 배열에 저장된 0을 지칭 (char 형 배열 초기화 시 남는 배열 요소에 0이 채워짐)

 

 

2. 널 문자의 용도와 표기법 

 

널 문자는 문자열의 끝을 표시하는 용도로 쓰인다. 

=> 아스키 코드 값이 0인 문자를 말하며, 문자 상수로는 \0으로 표현된다. 

 

:
Posted by Gongdile

[기본 미션] 직접 표로 햄심포인트 정리 공유

 

내가 생각할때 제일 중요한 부분은 

적절한 함수 형태를 응용해서 사용할 수 있느냐 인 것 같다. 

 

그리고 이 함수형태가 정확히 어떤건지 보고 이해하는것.. 

 

그래서 다양한 함수 형태만 간단하게 정리한다. 

 

1. 매개변수가 없는 함수

  • 함수의 매개변수 자리에 void를 사용한다
    • 예시) int get_num(void), int get num();
    • 괄호만 사용하는 것도 가능하지만 void를 넣어 매개변수가 없음을 명시적으로 표현하는 것이 좋다
  • void는 함수 정의나 선언에서 사용하며 호출할 때는 쓰지 않는다
  • 괄호조차 없다면 함수를 호출하는 문장이 아닌 그냥 함수의 이름으로 인식하므로 반드시 괄호는 사용해야 한다

2. 반환값이 없는 함수

  • 반환형의 자리에 void를 사용한다
    • 예시) void print_char(char ch, int count)
  • return문은 값 없이 단독으로 사용한다 (return;)
  • return문 자체를 생략하는 것도 가능하다

3. 매개변수와 반환값이 모두 없는 함수

  • 매개변수와 반환형 모두에 void를 쓴다

 

 

 

[선택미션] 재귀함수 종료되는 스크린샷 및 왜 종료되는지 공유 

--> apple이 출력되다가 종료되는 이유는 아래 그림과 같은데 

무한으로 호출되다 보니까 프로그램 하나가 쓸 수 있는 메모리를 모두 사용해서 (스택 오버플로우가 발생하여)

강제 종료된다. 

 

 

:
Posted by Gongdile

[기본미션]

혼공노트 활용 인증 샷

 
- 혼공 노트에 중요 개념들이 페이지랑 잘 정리되어 있어서 

  용어 추가보다는 개인적으로 중요하다고 생각되거나 혼동되는 개념들 위주로 포스트잇에 정리해두었다. 

  (예)block의 경우 파이썬에서는 중괄호말고 들여쓰기로 사용한다거나 기타 등등.. 

- 다시 봐야하는 내용은 포스트잇으로 표시해두었다. 

 

[선택미션]

p123쪽 크리스마스 예문을 코드로 표현한다면?

 

- if문의 기본형식에 대한 내용이었는데 주 내용은 아래와 같다.

 . "크리스마스 때까지 여자친구가 없으면" 이라는 조건식과  "소개팅을 주선해준다" 실행문을 코드로 표현하는것 ..

- 조건식과 실행문은 간단하게 표현했다 

.Check_Lover(): 여자친구 여부 확인하는 함수, 단 크리스마스때까지 없는지 확인하는 부분은 생략함 

.Matching_Date(): 소개팅을 주선하는 함수, 상세한 내용까지는 몰라서 간단하게 함수로만 표현

 

- Check_Lover라는 함수를 통해 크리스마스 때까지 여자친구가 없는지 확인하고 

없는 경우 Matching_Date 함수로 소개팅을 주선하고 종료된다. 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#inlcude <stdio.h>
#include <stdbool.h> 
 
int Matching_Date(void);
int Check_Lover(void);
 
int main(void)
{
  bool GirlFriend == false;
 
  Check_Lover();
  if( GirlFriend == false)
 {
   Matching_Date();
 }
  
  return 0;
}
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs        
:
Posted by Gongdile

[기본미션] 확인문제 책에 푼 인증샷 

 

 

 

[선택 미션] 4장 도전 실전 문제 풀이 

실전 문제 풀이를 간단하게 하자면 아래와 같은 로직으로 구현할 수 있다.

 

1. 사용자에게 몸무게와 키 입력 요청 

2. 입력 받은 몸무게와 키값 저장 

3. 저장한 값을 가지고 BMI 산출 

**3-1 여기서 키는 미터(m)단위로 계산한다고 써있기 때문에 맞게 바꿔줘야한다.

4. BMI값에 따라 다른 문장 출력 

5. 프로그램 종료 

 

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
32
33
34
35
36
37
38
39
40
#include <stdio.h>
 
 
 
 
int main(void)
 
{
 
     double weight, height, bmi;
 
 
 
 
     printf("몸무게(kg)와 키(cm) 입력 : "); //1
 
     scanf("%lf%lf"&weight, &height); //2
 
 
 
     height = height / 100.0; //3-1
 
     bmi = weight / (height * height); //3
 
 
 
     ((bmi >= 20.0&& (bmi < 25.0)) //4
 
         ? printf("표준입니다.\n")
 
         : printf("체중관리가 필요합니다.\n");
 
 
 
 
     return 0;
 
}
 
 
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs
:
Posted by Gongdile

이전에 포스팅한 것처럼

혼공 학습단에서 미션을 수행해야 하는데 

기본 미션과 선택 미션이 있다. 가능하다면 나는 전부 완료해서 올리려고 한다. 

 

[기본 미션] 비주얼 스튜디오 설치화면 인증샷  

 

 

[선택 미션] 학습 스케줄링 직접만들어보고 공유 

 

책 학습 로드맵에서도 나와있듯이 혼자 공부하는 C언어 책은 

기본편과 고급편으로 되어있다.

 

6주동안 진행하는 혼공단은 커리큘럼이 기본편까지를 목표로 되어있는데 

나는 고급편 16강까지 진도 나가는 것을 목표로 진행하려고 계획을 잡았다. 

(동적할당까지는 공부하고 싶었다 ㅎㅎ!!)

 

아마 기록을 진도보다 빨리 올리지 않을까 예상해본다 ㅎㅎ 

----------------------------------------------------------------------------

※ 혼공 학습단 미션과는 별개로 진도를 나가는 것이고 

주마다 학습량에 따라 변경 될 수 있다!! 

 

계획보다 딜레이되더라도 절대 포기하지 말기! 

----------------------------------------------------------------------------

1주: 1~4장 

2주: 5~7장 

3주: 8강~9강 

4주: 9강~10강

5주: 11강 ~ 13강 (13강 진행하면서 7강, 9강 다시 복습)

6주: 14강 ~ 16강 

----------------------------------------------------------------------------

7주: 8 ~10, 14~16 복습 

 

=> 아마 타이트하게 계획을 짜서 진도 나가면서 딜레이되거나 변경되는 사항이 있을거라 생각되지만 

큰틀은 이렇다. 

 

:
Posted by Gongdile
2020. 2. 7. 17:04

혼공 학습단 3기 혼공 학습단2020. 2. 7. 17:04

이번에 혼공 학습단 3기를 시작하게 되었다 ㅋㅋ 기대반 설렘반인데 

평소에 C언어가 약하다고 생각되어서 

C언어를 신청했다. 

 

 

6주차까지 우직하게 끝내는게 목표

C언어 일정과 커리큘럼은 아래와 같다. 

 

※미션 완료시 취소선으로 표시하겠다! 

학습 & 활동 기간 : 2/3 ~ 3/15 (6주간)
- 1주차: 2월 3일 ~ 2월 9일 (완료)
- 2주차: 2월 10일 ~ 2월 16일
- 3주차: 2월 17일 ~ 2월 23일 
- 4주차: 2월 24일 ~ 3월 1일
- 5주차: 3월 2일~ 3월 8일 
- 6주차: 3월 9일~ 3월 15일

 

 

C언어 외에도 Python Java가 있는데 선택미션이 마음에 들어서 몇개는 정리해볼 계획이다. 

:
Posted by Gongdile