C 15

C 공부 5일차 Chapter 12

포인터 C언어는 포인터를 통해 메모리에 직접 접근이 가능하기에 low 레벨 언어의 특성을 갖고 있다고 할 수 있다. 포인터 변수에도 변수의 자료형처럼 형이 존재하는데 이가 필요한 이유는 메모리 공간에 접근 시 기준을 마련해준다. 예를 들어 int형 포인터 변수 p는 p가 가리키는 변수의 내용을 4바이트를 읽어들여 이를 정수로 해석한다. 포인터 변수의 크기 32비트 시스템에서는 주소를 32비트로 표현하는 반면 64비트 시스템에서는 64비트로 표현한다. 따라서 32비트 시스템에서 포인트 변수의 크기는 4바이트, 64비트 시스템에서 포인트 변수의 크기는 8바이트이다. & 연산자 &연산자는 오른쪽에 오는 피연산자의 주소값을 반환하는 연산자로\ 피연산자는 변수만 가능하다. 상수는 피연산자 자리에 올 수 없다! 널..

C 2022.09.09

C 공부 4일차 Chapter 11

널 문자와 공백 문자 널 문자의 아스키코드는 0이고 공백 문자의 아스키코드는 32이다. int main(void){ char null='\0'; char blnk=' '; printf("%d %d", null, blnk); return 0; } 위 코드 실행 시 0과 32가 출력됨을 확인할 수 있다. 문자열 널 문자의 존재 여부에 따라 문자배열인지 문자열인지가 나뉜다. 문장 끝에 널 문자 존재 시 ==> 문자열 문장 끝에 널 문자 존재하지 않을 시 ==> 문자배열 문자열 끝에 널 문자가 필요한 이유는 문자는 메모리상에서 이진 데이터로 저장되기 때문에 문자열의 시작과 끝이 표시되어 있지 않다면 문자열을 구분하는 것이 불가능하기 때문이다.

C 2022.09.08

C 공부 3일차 Chapter 6, 7, 8, 9

break break문은 가장 가까이 감싸고 있는 반복문을 빠져나온다 그동안 break 범위가 헷갈렸는데 가장 가까운 반복문을 빠져나오는 것이었다 continue 얘도 마찬가지로 반복문 안에서 사용되며 continue를 만나면 그 즉시 조건문으로 이동한다. continue 다음 문장을 실행하는 것이 아니라 바로 조건문으로 이동하여 조건에 부합하는지를 확인한다. static 지역변수 지역변수 앞에 static을 붙이게 되면 - 선언된 함수 내에서만 접근 가능 (지역변수 특) - 프로그램 종료 시까지 메모리에 남아있음 (전역변수 특) 의 특성을 갖게 된다`.

C 2022.09.07

C 공부 2일차 chapter 4, 5

2의 보수 데이터를 표현할 때 가장 왼쪽 비트 MSB는 부호를 나타낸다. MSB가 0이면 양수, 1이면 음수를 나타낸다. 8비트로 정수 5를 표현하면 0000 0101이다. 그러나 -5를 표현하기 위해선 MSB를 1로 바꾼다고 되지 않는다. MSB를 1로 바꾸기만한 -5와 5를 더한 결과는 0이 아닌 다른 수가 나온다. 음수를 표현하기 위해서는 2의 보수를 사용해야 하는데 사용방법은 1) 1의 보수를 취한 후 0000 0101 🔽🔽🔽 1111 1010 2) 1을 더한다 1111 1010 + 1 ----------------- 1111 1011 2의 보수를 통해 얻은 -5와 +5를 더하면 비로소 0이 나오는 것을 확인할 수 있다. sizeof 연산자 sizeof는 사실 함수가 아닌 연산자이다. 그래서 si..

C 2022.09.06

C 공부 1일차

오늘부터 매일 C를 공부하며 배운 것을 쫌쫌따리 기록할 것이다 몇 년을 공부했지만 공부했다고 말하기엔 너무 까먹은 것들이 많아 머리에 제대로 넣기 위한 공부를 다시 시작하려한다. 표준함수, 표준 라이브러리 'printf'와 같은 내장 함수를 표준함수라고 하는데 이 표준함수들이 모여있는 곳을 표준 라이브러리라고 한다. 표준 함수를 사용하기 위해선 해당 함수와 관련된 헤더파일을 코드 상단에 선언해줘야 한다. #include 가 바로 그 이유이다. 주석 몰랐는데 행 단위 주석은 블록 단위 주석 내부에 포함이 가능하다는 사실 하지만 블록 단위 주석 내부에 블록 단위 주석은 포함할 수 없다 당연함

C 2022.09.05