210826, C언어 입문 - day 2

Min Hyeok·2021년 8월 26일
0

C언어 개념 익히기

목록 보기
2/19

잘 놀다 왔습니다. 사과의 의미로 그랜절 한번 씨게 박고 갑니다..

잘 놀다 왔으니까, 미래의 지식을 쌓는 것 만큼 알차게 시간을 보내ㅆ으니.. 괜찮아랄까,,,★

여튼, 오늘의 공부를 보ㄱ습해보자.

근데 키보드 왜이러지? ㄱㅖ속 이렇게 도ㅣ네. 아 짜즈ㅇ나니까 그냥 할거임.

  • 10분 잡고 고쳤다. 개그튼거.

3장, 자료형

자료형. 예전에 왜인지 모르겠지만 여기에서 혼동이 가끔가다가 있었다. 그래서 그냥 지나가다가 마주친 김에 자세히 읽어줌.

확실히 머리에 남아있는 부분인 부호코드 같은 부분들은 제껴두겠다. 100% 알 수 있다고 장담할 수 있는 건 굳이 다시 공부할 필요가 없지않나..

우선, ascii코드. 모두 알고있듯(?) 컴퓨터는 문자를 읽을 수 없다. 멍청하기때무ㄴ에.. 얘네는 숫자로 정보를 받아들이는데, 우리는 문자로 쓰고, 얘네는 숫자로 읽잖아? 이 둘 사이의 니즈를 둘 다 만족시켜야 할 필요가 있다 이거지. 그래서 이 쪽 업계 사람들이 만든 일종의 약속 중 하나가 "ASCII Code" 란 거시다. 1바이트 메모리(0~255)에 앵간한 문자들으 데이터가 다 있어서, 이 아스키 코드를 사용해서 1바이트의 메모리로도 필요한 문자를 컴퓨터가 숫자로 읽어들일 수 있게 한다.. 이거제.

그 다음은 자료형이다.
앞서 언급했듯, 내가 예전에 이 부분에서 왜인지는 모르겠지만 혼동을 한 적이 많다. 갑자기 뇌절을 한 적이 많았달까?

자료형이 뭐냐~~ 라고 물어본다면, 메모리를 사용할 때, 몇 Byte의 메모리를 사용할 지에 대해서 명시하는 것이다. 내가 프로그램을 만들면서, 내가 쓸 데이터 크기에만 알맞게 저장공간을 할당해서 사용한다 이거지. 택배 포장을 예로들면, 마우스 하나 넣어서 보낼건데 냉장고 옮기는 박스에 넣을 필요는 없잖어?? 그냥 딱 마우스 하나 들어갈만한 박스 넣어서 옮기면 공간 낭비 없이 잘 포장이 되겠지. 이런 case를 컴퓨터 data로 바꿔 해석하면 편하다.

여기서 자료형의 종류는 그냥 슬쩍슬쩍 언급만 해놓겠다. 이제 master했거든. ㄹㅇㅋㅋ.

정수형
signed char, unsigned char, signed int, signed short int, unsigned int, unsigned long int

아. 참고로, 정수에선 어디에서든 "signed"가 기본형이고, int형태에서는 "long"이 기본형이다. 그리고 short나 long은 int 앞에서만 붙는 special한 예약어기 때문에, 그냥 long, short라 적어도 각각 long int, short int로 알아서 읽힌다는 점. aradooja.

실수형
float, double

그리고, 실수형에는 unsigned가 딱히 따로 존재하지 않는다. 그냥 "float", "double"이라고 존재함. 실수만 해도 무한한 개수로 쫘라라ㅏrrrrㅏㅏ락 나열되어 있는데, 그걸 굳이 unsigned를 붙혀서 표현할 수 있는 실수 개수를 늘릴 필요가 없어서인가..? 이에 대해서는 web-surfing을 해봅시다?

4장, 상수와 변수

정상수. 픿ㅋㅋㅋㅋㅋㅋ

ㅁ..미안.. 이번엔 상수와 변수다.
숫자나 문자를 C언어에서 어떻게 받아들이냐~~ 를 공부해보도록 haja.

일단 (정)상수가 뭐냐! 변하지 않는 수다. 항같은라고 받아들이자. 이 상수는 숫자형 상수와, 문자형 상수, 문자열형 상수로 나뉜다.

1st, 숫자형 상수. 뭐 이 글 보는 사람들이라면 다 느낌오지않나? 그냥 정수형 3, -1, 6.. 실수형 -2.841, 0.15e+2. 이런식으로 숫자로 된거.

2nd, 문자형 상수. 말 그대로 "문자" 형이다. 지금 내가 타이핑 하는 모든 것들이 문자지. 작은 따옴표(')를 사용한다. 'a', 'b', 'E', '*', '3'. 이런 것들을 싸그리 다 묶어 말하는 것.

3rd, 문자열형 상수. 이건 문자형과 헷갈리지 말자. 문자"열"형이다. 문자형이 ONLY ONE (한 개)의 문자라면, 문자열형은 한개 "이상"의 문자를 말한다. 큰 따옴표(")를 사용함.

!! 여기서 주의할 점이, 만약 내가 예시로 들자면 "Gominhyeok"이라고 문자열을 작성했다. 여기서 문자는 G,o,m,i,n,h,y,e,o,k. 총 10개지? 그래서 한 글자당 1Byte.. 어 총 10Byte네. 크크루삥뽕. 이렇게 해석하면 안된다!!!
문자열형에선 저 문자열 마지막에 "문자열의 끝을 의미하는" "0"이 있어서, 총 10바이트가 아니고 11바이트라고 해석해야한다.
긍까.. "Gominhyeok"이라기 보단 "Gominhyeok0"의 바이트 수가 총 바이트 수가 된다는 거지. 유남생?

그 다음엔 변수.

변수는 상수 반대임. 안 변하는 값이 상수라매? 그 반대? 변하는 값이겠지? 이게 변수다. ㅇㅇ. 컴퓨팅적 워딩으로 말해주자면, "프로그램이 실행되는 동안 값이 바뀌는 정보", "사용자로부터 데이터를 받거나 처리하는데 필요한 저장 공간"을 의미한다.

변수를 set하는 순서가 있는데.

1st, "변수 이름 설정". 메모리의 시작 주소를 기억하고 사용하기 위해 set한다. 숫자로 시작해선 안되고, 대문자랑 소문자 구별한다.

2nd, "변수 선언". 저장공간 할당을 위해서 함.

여기 까지 1st, 2nd를 보여주면

unsigned int num ;
/** 여기서 unsigned int가 자료형, num이 변수 이름임 **/

요런 넉낌이다.

그리고 3rd로 "변수 초기화". 우리가 흔히 목욕탕 같은 곳에 있는 정수기 위에 있는 물컵을 보면. 100% 깨끗하단 생각이 들까? 아니다.. 누군가 입을 대고 안 씻어내서 의도치 않은 간접키스를 할 수도 있다. 위생적으로 염려된단 말이지. 그걸 한번 행궈내고 쓰는게 보통이다.. 아니냐..? 그럼 말고.. 일단 난 그러니까 내 예시로 들거다.. 여튼 이런 과정을 변수 초기화라고 생각하면 된다.

깰끔하게 정리해서 말하면 "쓰레기 값을 초기화하고 자신이 사용하고 싶은 어떠한 값을 메모리에 저장하는 것".

예시를 보여주겠따.

int value = 0;
/** int 자료형, value 변수이름, 여기서 = 0으로 변수 value값을 초기화 시켜주는 과정을 변수 초기화라고 한다. **/

그리고 2진수 10진수 16진수로 각각 서로서로 변환하는 방법이 있는데. 이건 아니까 생략하겠다.

이상, 오늘은 여기까지

0개의 댓글