C
-
10. C 포인터
저번 강의에서 배웠듯이, 우리는 & 연산자로 객체의 메모리 주소를 불러올 수 있습니다. & 연산자는 참조 연산자라고 부릅니다. 다음과 같이 말이죠. int a = 1; printf("%d", a); printf("%p", &a); 그런데, 여기서 &a 도 하나의 포인터입니다. 포인터는 다른 객체의 메모리 주소를 저장하는 변수입니다. 포인터 변수는 자료형 뒤에 * 을 붙여서 선언합니다. int a = 1; int* pointer = &a; printf("%p\n",&a); printf("%p\n", pointer); 과 같은 방법으로 선언하면, 첫번째 printf와 두번째 printf 함수가 출력하는 대상은 같습니다. 바로 변수 a의 주소죠. * 연산자를 사용하면 포인터 주소의 변수값을 가져올 수 있습니다..
2022.07.21 21:36 -
9. C 메모리
오늘은 포인터를 하려면 꼭 알아야 하는 메모리 구조에 대해 알아보도록 하겠습니다. 메모리의 구조 여러분이 흔히 RAM이라고 하는 장치의 정식 이름은 랜덤 액세스 메모리 (Random Access Memory), 직역하면 무작위 접근 기억장치입니다. 이러한 이름이 붙게 된 이유는 바로 RAM의 구조에 있습니다. 다음 표는 RAM의 구조를 형상화한 것입니다. 0x000001 0x000002 0x000003 0x000004 0x000005 0x000006 0x000007 0x000008 .......... 각 칸에 0x로 시작하는 괴상한 숫자들이 있습니다. 이는 각 메모리 위치의 주소로, 16진수로 표현됩니다. 16진수의 대표적인 예는 바로 컴퓨터가 색상을 나타낼 때 사용하는 HEX RGB 코드가 있죠. 여기..
2022.07.06 23:15 -
8. C 배열
배열 배열은 변수를 일일히 선언하는 대신 관련 있는 값들을 한 변수에 모두 저장하기 위해 사용합니다. 배열을 선언하기 위해서는 자료형과 배열 이름, 그리고 대괄호 [ ] 를 사용합니다. 대괄호 안은 비워놓거나 배열의 크기 (자연수)를 입력합니다. 배열을 초기화하기 위해서는 중괄호 { } 를 이용해 안에 값을 입력하면 됩니다. int array1[크기]; #배열을 선언하는 방법 (중괄호로 초기화를 하지 않을 때는 꼭 크기를 지정해야함) int array2[] = {1, 2, 3, 4, 5}; #중괄호로 초기화하는 배열을 선언하는 방법 배열을 초기화 하지 않을 때 배열의 크기를 정하지 않으면 프로그램은 배열을 얼마 만큼의 크기로 만들어야하는지 알 수 없어 정상적으로 실행 되지 않음에 주의하세요! 배열의 값에..
2022.05.17 22:45 -
7. C 반복문
반복문 (Loops) 반복문은 특정 코드를 특정 조건에 다다를 때 까지 반복해서 실행시킬 수 있는 구문입니다. 반복문은 오류를 줄일 수 있고, 똑같은 작업의 반복을 줄일 수 있어서 유용합니다. while 문 while 문은 특정 조건이 참인 동안 { } 안에 있는 코드를 반복해서 실행시킵니다. 다음은 while 문의 기본형입니다. while (조건) { 실행될 코드 } 아래의 코드에서는 변수 i가 5보다 작은 동안 계속 i 의 값을 출력합니다. int i = 0; while (i < 5) { printf("%d\n",i); i++; } 0 1 2 3 4 팁 변수는 반복문 안에서 선언할 수도 있으나, 그 반복문 안에서만 사용할 수 있습니다. 추후 전역변수와 지역변수 편에서 다시 다루겠습니다. while 문..
2022.02.21 11:31 -
6. C 조건문 (if, else, else if, switch)
조건과 조건문 5편인 연산자 편에서 우리는 C언어에 논리 연산자로 조건의 참/거짓 여부를 확인할 수 있다는 사실을 배웠습니다. 2022.02.17 - [C] - 5. C 연산자 5. C 연산자 연산자는 변수와 값의 연산을 위해 사용됩니다. C언어의 연산자는 크게 6가지로 나뉩니다. 산술 연산자 (증감 연산자 포함) 대입 연산자 관계 연산자 논리 연산자 비트 연산자 조건 연산자 산술 tjwhang.tistory.com 이 논리 연산자를 사용해서 조건(명제의 참/거짓 여부)에 따라 각각 다른 코드가 실행될 수 있게 하는 구문이 있는데, 이러한 구문을 조건문이라고 합니다. C언어에는 5가지 조건문이 있습니다. if - 주어진 명제가 참(1)이면 중괄호 내의 코드가 실행됨. else - if문 뒤에 붙으며, i..
2022.02.19 10:57 -
5. C 연산자
연산자는 변수와 값의 연산을 위해 사용됩니다. C언어의 연산자는 크게 6가지로 나뉩니다. 산술 연산자 (증감 연산자 포함) 대입 연산자 관계 연산자 논리 연산자 비트 연산자 조건 연산자 산술 연산자 제일 쉬운 연산자입니다. 기본적인 사칙연산을 하는 연산자입니다. 연산자 이름 설명 예시 + 덧셈 + 앞뒤에 있는 숫자를 더함 x + y - 뺄셈 - 앞뒤에 있는 숫자를 뺌 x - y * 곱셈 * 앞뒤에 있는 숫자를 곱함 x * y / 나눗셈 / 앞뒤에 있는 숫자를 나눔 x / y % 나머지 % 앞뒤에 있는 숫자를 나눈 결과의 나머지를 구함 x % y ++ 증가 변수의 값을 1만큼 증가시킴 x++ -- 감소 변수의 값을 1만큼 감소시킴 x-- 대입 연산자 대입 연산자는 변수에 값을 대입(지정)할 때 사용합니다...
2022.02.17 11:08 -
4. C 변수와 자료형
변수의 사전적 의미는 "변할 수 있는 수" 입니다. 하지만 코딩에서 변수는 데이터 값을 담는 상자라고 보면 편합니다. C 언어에서는 서로 다른 키워드로 표현되는 여러 가지 종류의 변수가 있습니다. 이 종류를 자료형이라고 합니다. 다음은 C언어에서 사용되는 자료형입니다. 몇가지 자료형은 잘 쓰지도 않아서 이런게 있구나 알아만 두시면 됩니다. 주로 쓰는 자료형은 굵은 글씨로 표시했습니다. 자료형 명칭 크기 형식 약자 값의 표현범위 정수형 int 4바이트 정수 INTeger -2,147,483,648 이상 +2,147,483,647 이하 short 2바이트 정수 SHORT integer -32,768 이상 +32,767 이하 long 4바이트 정수 LONG integer -2,147,483,648 이상 +2,..
2022.02.16 14:06 -
3. C 출력 (글자 띄우기) - printf() 함수
저번 강의에서도 알아봤듯이, printf() 함수는 특정한 값이나 글자를 출력하는데 사용됩니다. #include int main() { printf("Hello World!"); return 0; } 와 같이 printf() 함수를 사용할 수 있습니다. 실행 결과는 다음과 같습니다. Hello, World! printf() 함수의 괄호 ( ) 사이에 들어간 값을 보면 그냥 글자가 아니라 큰 따옴표 " "로 둘러싸인 글자들이 있는 것을 볼 수 있습니다. 이를 문자열이라고 하며, 문자열을 출력할 때 " "를 쓰지 않으면 오류가 납니다. 또한, 다음과 같이 printf() 함수를 여러 번 사용할 수 있습니다. #include int main() { printf("Hello, World!"); printf("안..
2022.02.16 12:49 -
2. C의 문법
#include int main() { printf("Hello World!"); return 0; } Hello, World! 위의 코드는 저번 시간에 작성하고 끝낸 것입니다. 이제 이 코드를 줄 별로 나누어 C 언어의 문법에 대해 알아보겠습니다. 코드 설명 1번째 줄: stdio.h는 STanDardInputOutput의 약자로, C언어의 기본적인 입출력 구문을 사용할 수 있게 해주는 헤더 파일 (Header File)입니다. 헤더 파일이란, 미리 함수를 정의해 놓은 C언어 파일을 다른 C언어 파일에 쉽게 추가할 수 있도록 만들어 놓은 함수의 집합체 파일이라고 보시면 됩니다. 이 1번째 줄은 없으면 기본적인 입출력이 불가능하기 때문에 C 프로그램에서 항상 등장하는 구문입니다. 2번째 줄: 아무것도 없..
2022.02.16 12:10 -
1. C 시작하기
C는 무엇인가? C 언어는 데니스 리치가 1972년에 벨 연구소에서 개발한 프로그래밍 언어입니다. 매우 오래된 언어임에도 불구하고 아직까지도 인기가 있습니다. C는 UNIX 운영체제를 위해 개발되었기 때문에 UNIX와 연관성이 있습니다. C를 배워야 하는 이유? 전 세계에서 가장 많이 사용되는 언어 중 하나입니다. C를 알면 문법이 비슷한 C++, C#, Python, Java 등의 언어를 배우기 쉽습니다. C의 처리속도는 Python이나 Java보다 훨씬 빠릅니다. 활용도가 높아 앱이나 과학기술 등 여러 분야에 사용될 수 있습니다. C++는 무엇인가? C++는 C의 확장기능으로, C++와 C의 가장 큰 차이점은 객체 지향적 프로그래밍 (OOP, Object Orientated Programming)을 ..
2022.02.16 11:28
코딩 테스트 풀이 (백준, 정올, 프로그래머스)
-
백준 9012 - 괄호 풀이 (C++)
#include #include #include using namespace std; int main(void) { int N; cin >> N; while (N > 0) { N--; string input; cin >> input; stack s; string output = "YES"; for (int i = 0; i < input.length(); i++) { if (input[i] == '(') { s.push(input[i]); } else if (!s.empty() && input[i] == ')' && s.top() == '(') { s.pop(); } else { output = "NO"; break; } } if (!s.empty()) output = "NO"; cout
2022.05.17 21:52 -
백준 10828 - 스택 풀이 (C++)
#include #include #include using namespace std; int main() { int N, arg; string command; stack s; cin >> N; for (int i = 1; i > command; if (command == "push") { cin >> arg; s.push(arg); } else if (command == "pop") { if (!s.empty()) { cout
2022.05.17 21:51