목록분류 전체보기 (403)
happy coding
포인터(pointer)란 주소를 가지고 있는 변수를 의미한다. 이를 이용하여 메모리의 내용에 직접 접근할 수 있다. 변수는 메모리에 저장되고 메모리는 바이트 단위로 접근이 가능하다. 따라서 변수의 크기에 따라 차지하는 메모리 공간이 달라진다. 예를 들어 char형 변수는 1byte, int형 변수는 4byte. 여기서 변수의 주소를 계산하는 연산자는 &이다. 예시로, 변수 i의 주소는 &i 라고 말할 수 있다. int i = 10;// 정수형 변수 i 선언한다. int *p = &i;// 변수 i의 주소가 포인터 p로 대입된다. short birthday; short *ptr;//포인터가 가리키는 대상의 크기가 2바이트인 포인터 변수를 선언 ptr = &birthday;//birthday 변수의 주소를 ..
배열 배열이란 동일한 타입의 데이터가 여러 개 저장되어 있는 데이터 저장 장소를 의미한다. 배열 안에 있는 각각의 데이터들은 정수로 되어 있는 번호에 의해 접근이 가능하다. 배열을 이용하면, 여러 개의 값을 하나의 이름으로 처리할 수 있다. 여기서 배열 원소의 번호를 인덱스 라고 한다. 배열의 크기가 주어지지 않았을 때 자동적으로 초기값의 개수만큼이 배열의 크기로 잡힌다. 배열을 복사하려는 경우 단순히 "=" 으로 복사하면 컴파일 오류가 나기 때문에, for 문을 이용하여 복사해야 한다. int a[SIZE]; int b[SIZE]; b = a;//error for (i=0;i 1000 printf("%d\n", arr);//배열의 첫 번째 인자의 시작 주소를 의미 printf("%d\n", arr[0]..
자료형에는 char, int, float, double 등 기본자료형과 배열, 열거형, 구조체, 공용체 등 파생자료형으로 나눌 수 있는데 그 중 하나인 구조체에 대해 배워보았다. 구조체란 같은 자료형으로 이루어진 배열과 다르게 서로 다른 자료형을 하나로 묶는 구조를 말한다. struct 구조체_태그_이름 { 자료형 멤버_이름; 자료형 멤버_이름; ... }; 구조체를 정의하는 것은 붕어빵 틀을 정의하는 것과 같고, 붕어빵을 실제로 만드릭 위해서는 구조체 변수를 선언해야 한다. # 아직도 구조체랑 객체의 차이를 모르겠다 구조체 멤버를 참조하려면 . 을 이용한다. 구조체명.구조체멤버명 링크드리스트 또한 구조체 형식을 포인터로 엮어둔 것이다. 같은 구조체 변수끼리 대입은 가능하지만 비교는 불가능하다. 구조체를..
컴퓨터에서는 각각의 문자에 숫자코드를 붙여 표시하는데, 1. 아스키 코드 2. 유니 코드 가 대표적으로 존재한다. 여기서 아스키 코드는 영문자를 표시하기 위해 사용하는 표준적인 8비트 문자 코드 이며, 유니 코드는 전세계의 모든 문자를 표현할 수 있도록 설계한 표준적인 16비트 문자 코드이다. 문자 변수와 문자 상수('A')는 %c나 %d로 출력하는 경우 같은 값을 나타낸다. 문자 상수인 경우 컴퓨터가 알아서 아스키 코드로 저장한다. 문자 상수를 변수에 저장하면 문자 변수이다. K 210 ~~ 103 M 220 ~~ 106 G 230 ~~ 109 T 240 ~~ 1012 byte 8 bit >> (unsigned)char (-27 ~ 27 - 1) half word 16 bit >> (unsigned)s..
자료구조 자료구조란 컴퓨터에서 어떤 문제를 해결하기 위해 자료의 특성에 따라서 자료를 분류하고 구성하고 저장해 놓은 것을 말한다. 컴퓨터가 효율적으로 문제를 처리하기 위해서는 문제를 정의하고 분석하여 그에 대한 최적의 프로그램을 작성해야 하기 때문에 자료구조는 중요하다. 알고리즘 이와 달리 알고리즘이란 문제해결방법을 추상화하여 단계적 절차를 논리적으로 기술해 놓은 명세서인데, 입력(input) : 알고리즘 수행에 필요한 자료가 외부에서 입력으로 제공될 수 있어야 한다. 출력(output) : 알고리즘 수행 후 하나 이상의 결과를 출력해야 한다. 명확성(definiteness) : 수행할 작업의 내용과 순서를 나타내는 알고리즘의 명령어들은 명확하게 명세되어야 한다. 유한성(finiteness) : 알고리즘..
TCPschool을 보고 정리한 내용입니다. 표준 입출력 함수 출력에는 print()함수, 입력에는 input()함수를 이용한다. print()함수에서는, 더하기 기호를 사용하여 여러 데이터를 한 번에 출력할 수 있으며, 문자열에 한해 더하기 기호를 생략해도 같은 결과를 출력해준다. 또한, 쉼표를 사용하면 띄어쓰기를 하나씩 삽입하여 출력하기도 한다. 그리고 숫자나 문자열뿐만 아니라 배열과 같은 데이터까지도 출력할 수 있다. input()함수는, 프로그램 실행 도중 사용자의 입력을 전달받아 그 값을 프로그램에서 사용하고 싶을 때 사용한다. 주석(comments) 주석이란 해당 프로그램 소스 코드를 이해하는 데 도움을 주는 설명을 적거나 개발자가 디버깅을 위해 작성한 코드를 가리킨다. 파이썬에서는 이 주석을..
TCP school을 보고 정리한 내용입니다. 컴파일러를 사용하는 C언어나 자바와는 달리 인터프리터에 의해 실행되는 스크립트 언어인 파이썬의 특징은 1. 인터프리터 언어이다. 2. 문법이 쉽고 간결하다. 3. 생산성이 높아 개발 속도가 빠르다. 가 있다. 여기서 인터프리터(interpreter)란 소스 코드를 처음부터 한 라인씩 차례대로 해석하며 실행하는 프로그램을 의미하는데, 한 라인씩 바로 기계어로 변환하기 때문에 실행 속도가 컴파일러 언어에 비해 다소 느리지만, 코드가 완전히 작성되지 않아도 작성된 부분까지만을 테스트할 수 있으며 대화형 기능을 통해 사용자가 곧바로 코드를 수정할 수 있다는 장점을 가지고 있다. 파이썬은 블록을 중괄호로 구분하는 C언어나 자바와는 달리 소스코드의 들여쓰기로 구분한다...
문제 시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 시험 점수가 주어진다. 시험 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다. 출력 시험 성적을 출력한다. #include int main(void){ int s; scanf("%d", &s); if (s >= 90 && s = 80 && s = 70 && s = 60 && s