WSLwsl (Windows Subsystem for Linux) - 리눅스용 윈도우 하위 시스템리눅스의 네이티브 바이너리를 윈도우 환경에서 돌아가도록 만들어낸 시스템\-> 윈도우 환경에서 가상머신없이 리눅스 배포판 버전을 설치해 사용 가능Window에 Linux용 W
vi에서는 두가지 모드가 존재함'글자 입력 모드' vs '명령어 입력 모드'"i" 입력시 입력모드로 진입!"esc" 누르면 입력모드에서 빠져나옴!명령어 입력 모드저장과 동시에 에디터 닫음변경 없이 닫기저장 없이 닫음
ls 하위 옵션들을 조합 할 수 있음ex) -al디렉터리, 파일 정보를 좀 더 구체적으로 표현숨긴파일 포함 모두 표시파일들 첫 이름에 '.'이나 ','로 시작하면 숨긴파일임ex) .text.txt상위 폴더에서 os_concepts라는 하위 폴더의 파일 보기r: read
c는 다양한 형태의 자료형을 제공한다.그 중 원하는대로 '부호 키워드'와 '크기 키워드'를 붙여서 특성을 정의할 수 있다.signedunsigned부호 키워드는 위의 2가지가 있다.signed는 마이너스(-)부호가 붙을 수 있는 부호로 음수를 표현할 수 있다.또한 코딩
c언어의 정수형은 자료형 마다 가질수 있는 최댓값이 있다.char의 최댓값은 127, unsigned char의 최댓값은 255인데 위 코드에서 할당된 숫자를 보면 최댓값 보다 높은 것을 볼 수 있다. 이때 최댓값보다 높은 수를 할당받으면 오버플로우(overflow)가
sizeof 연산자는 자료형의 크기를 구할 수 있다.sizeof 표현식sizeof(표현식)sizeof(자료형)위 3개의 형식이 있고 sizeof 자료형 형식은 에러가 난다.
c언어를 사용중 우리가 자료형의 최댓값과 최솟값을 사용하여야 할때 직접 -2,147,483,648으로 값을 직접 넣기엔 불편하거나 에러가 발생할 수 있다.이럴때 사용할 수 있는 방법은 아래와 같다위는 자료형의 최솟값을 구하는 코드이다.해당 방식을 사용하기 위해서는 꼭
c언어는 초창기에 만들어진 언어로 개발된 이후 하드웨어가 8비트 16비트 32비트 64비트등 나날이 발전하면서 정수 자료형의 크기가 그떄 그때 달라 하드웨어간의 호환에 문제가 발생하기 시작했다이를 보완하기 위해 만들어진 자료형으로을 꼭 선언하여 사용해야 한다.위와같이
c언어의 실수자료형은 3자이다. float 4바이트 | 유효자릿수: 7 double 8바이트 | 유효자릿수: 16 long double 8바이트 | 유효자릿수: 16 float float은 초기화하는 숫자 뒤에
c언어의 정수 자료형은 문자 1개를 저장할 수 있다.char - 1바이트 - -128~127unsigned - 1바이트 - 0~255char에 문자를 저장할 때 문자 그대로가 아닌 문자에 해당하는 아스키코드(ASCII)값인 정수값을 저장하게 된다.c언어에서 char은
상수는 변하지는 않는 값이다.변수는 한 번 선언하면 값을 계속 바꿀 수 있지만 상수는 첫 선언할 때만 값을 할당할 수 있으며 그 이후로는 값을 변경할 수 없다.'con1'은 상수, 대입하는 값 10은 리터럴이다.리터럴(literal) = '문자 그대로', c언어에서는
콘솔에 입력하는 방식 - 표준 입력(standard input, stdin)콘솔에 출력하는 방식 - 표준 출력(standard out, stdout)기존 scanf()함수는 오래되어서 입력값의 길이를 설정할 수 없어서 보안에 취약함.보완한 함수 scanf_s()함수 많
c언어 숙달을 위해 백준에서 알고리즘 공부 중 무한루프로 인해 막히는 문제를 만남입력 예시에 최대 입력 갯수 제한이 없기 때문에 while(1)로 scanf() 돌리다가 계속 출력 초과로 틀림EOF(End of File)파일의 끝을 탐지하는 상수로서 파일의 끝에 도달했
c 언어의 변수에서 덧셈 뺄셈하는 방법변수에 값을 추가해야 될 때 변수를 불러서 값을 더하고 입력하는 방법이다.변수 하나로 값을 추가해야될때 대입연산자(=) 뒤에 변수를 선언하는 것보다 잛고 빠른 방법이다.
c언어에서는 ++, --라는 '증감연산자'를 제공한다. ++ 1증가 -- 1감소 정수에서는 1을 증가,감소 시키지만, 포인터 연산에서는 자료형 크기만큼 증가, 감소시킴 사용법 정수, 실수 실수에 증감연산자를 써도 소수짐 밑에 자리수에 영향 없이 1만 증감 됨
기본적인 함수선언 예시이다. main함수가 밑으로 내려가는 것을 방지하기 위해 main()선언 전 다른 함수들의 선언만 하고 내용은 main함수 밑에 작성한다.
프로그래밍 중 서로다른 자료형으로 연산을 할 때가 많음 서로다른 자료형끼리 연산을 할 때 정해진 규칙에 대해 알아보자 형 확장 위 코드처럼 정수와 실수를 선언하고 이유: 자료형을 섞어서 계산을 하면 컴파일러에서 '암시적 형 변환'함 자료형의 크기가 큰 쪽, 표
c언어의 조건식 if 기본예제 위 코드에서 scanf()로 터미널에서 0 이상의 정수를 입력한다면 if문의 조건식(num > 0)이 참이 되기 때문에 if문 안의 코드가 실행되어 >>> 조건식이 참 입니다. (입력값) 이 표준출력 될 것이다. 주의 if문의 사
프로그램을 짤때 참,거짓으로만 결론이 나는 상황은 많지 않다.그 이상의 경우에 대한 코딩을 해야할 때 else if를 사용할 수 있다.자판기에서 음료를 뽑을 때 자판기에는 콜라, 사이다, 환타, 물 이 있다.사용자가 원하는 음료를 골랐을때 해당 음료를 주는 코드를 작성
비교연산자는 if문 뿐만아니라 while,do while, for 반복문에서 조건식을 표현할 때도 쓰인다.종류: <, <=, >, >=, ==, != 이 있다.삼항연산자를 알기전에 종류에 대해 알아보자값이 하나만 필요한 연산자로ex) +a, -a \++a,
c언어의 논리연산자는 조건식이나 값을 논리적으로 판단할 때 사용한다. 종류: &&-> AND(논리곱), 양쪽 모두 참일때 참 ||-> OR(논리합), 둘 중 하나라도 참이면 참 ! -> NOT(논리부정), 참과 거짓을 뒤집음 && 논리곱 AND연산자
c언어에서 거짓은 0으로 참은 0이아닌 숫자로 표현하였지만<stdbool.h>을 사용하면 true를 참으로 false를 거짓으로 사용할 수 있다.<stdbool.h> 안에는 bool자료형, true, false가 정의되어 있다.<stdbool.h>을 호
지금까지 자료형은 바이트 단위로 구분하였다. 비트 연산자는 비트 단위로 연산하는 연산자이다.종류:& - 비트AND| - 비트OR^ - 비트XOR~ - 비트NOT<< - 비트를 왼쪽으로 쉬프트'>> - 비트를 오른쪽으로 쉬프트&= - 비트AND 연산 후 할당!
시프트 연산자는 2의 거듭제곱은 숫자를 빠르게 구할 때 유용하다.왼쪽으로 이동하는 << 연산자는 한 번씩 이동하면 2의 거듭제곱으로 수가 늘어난다. 즉, 비트의 각 자릿수는 2의 거듭제곱을 뜻하므로 비트의 이동횟수는 지수라 할 수 있다.unsigned cha
연산자의 우선순위를 알고있으면 좋지만 다 외우기엔 쉽지 않다.\*, /, %가 +, -보다는 높다는 것만 알아도 대충 쓸 수 있을 것이다.또한, 수학 식에서 원하는 계산을 위해 우선순위 높은것보다 먼저 계산하기 위해 괄호(())를 쓰는 것처럼 c언어에서도 사용할 수 있
c에는 조건문의 결과에 따라 실행하는 것이 if문 뿐만아니라 switch분기문으로도 다양한 조건을 처리할 수 있다.switch 분기문은 항상 case와 함께 사용변수에 지정한 값이 case에 지정한 값과 일치하면 코드 실행아무 case에도 해당하지 않으면 defaul
단순 반복을 할 때 일일이 코딩하기엔 비효율적이고 정적이다. 반복문 for을 쓰면 자동으로 워하는 횟수만큼 반복할 수 있다.for (초기식; 조건식; 변화식) -> 루프 선언문(loop statement){ 반복할 코드 -> 루프 본체(loop bo
while문은 괄호 안에 조건식만 들어가고 초기식은 반복문 바깥에 있다. 또한 중괄호 안에 반복한 루프 본체와 변화식이 함께 들어간다.초기식while (조건식) - 루프 선언문{ 반복할 코드 변화식} - 루프 본체 및 변화식초기식 선언(while문 밖에서)조건식
do while 반복문은 루프 본체를 최소 한 번 수행하고 조건식이 만족하지 않으면 반복을 하지 않고 넘어간다.do{ 반복할 코드 - 루프 본체 변화식} while (조건식); - 루프 선언문초기식은 반복문 바깥에 위치하고 do로 시작하여 중괄호{} 속에
break : for, while, do while, switch 주로 반복문에서 원할때 제어흐름을 벗어나기 위한 함수이다. 반복문이 끝남 \*종료용continue : break과 비슷하지만 제어흐름(반복)을 유지한 상태에서 코드의 실행만 건너뛰는 함수, 반복문이 끝나
반복문을 나오는 방법으로 break문을 알아봤었다. 하지만 break문은 중첩루프를 빠져나오기 위해선 추가적인 코드가 더 필요하다.위 처럼 break;의 특징은 현재 반복문만 끝내는 것이다.j 반복문을 break 해도 i 반복문은 계속 실행되기 때문에 break문으로
c에서는 포인터에 변수의 메모리 주소를 저장하는 방식만 봤고 이번에는 포인터에 원하는 만큼 메모리 공간을 할당받아 사용하는 방법을 알아본다.포인터의 사용법:1\. 변수의 메모리 주소를 저장하여 사용2\. 포인터에 원하는 메모리 공간을 할당 받아 사용c에서는 메모리 공간
자료형 배열명크기 = {내용}ex) int numArr10 = { 0, }c언어에서 배열의 선언은 여러 종류가 있다.초기화 없이 선언int numArr10;정해진 크기만큼 초기화하여 선언(크기 설정 안해도 됨)int numArr\[] = {0,1,2,3,4,5,6,7,
배열명 세로 = { {요소,요소,요소}, {요소,요소,요소} }numArr2 = { {1,2,3} {4,5,6} }c언어에서 2차원 배열을 선언할 때 세로인덱스 순으로 선언 한다.numArr0 = 3numArr1 =
정수를 입력받아 가변적으로 배열을 사용하는 방법배열 선언이 아닌 포인터를 선언하여 malloc()으로 메모리를 할당하는 방법이다.자료형 포인터이름 = malloc(sizefo(자료형) 크기);int numPtr = malloc(sizeof(char) input);포
c언어에는 문자(char)자료형은 있지만 문자열(string)은 없다. char 자료형의 크기는 1byte이므로 문자 하나밖에 저장할 수 없기때문에 이것을 배열처럼 나열하여 문자열을 사용한다. 이런 이유로 문자열을 사용하는 2가지 방식이 있다. 배열 형식 문자열 포
scanf("%s", 배열);성공: 가져온 값의 개수 반환실패: EOF(-1) 반환scanf()로 배열에 입력받을 때는 '&'을 생략하고 작성한다.= 배열도 포인터처럼 주소를 담고있기 때문입력받은 문자열+1(null)을 생각하여 생성한 배열 크기의 -1만큼 입력 받는다
c에서는 문자열의 길이를 구하는 함수가 있다. strlen()strlen()은 배열의 크기가 아닌 문자열의 길이를 구한다.배열의 크기가 10이어도 문자열이 5만큼 있으면 5를 반환한다.null도 문자열의 길이에 포함하지 않는다.c에서는 문자열을 비교하는 함수가 있다.
대상 문자열의 포인터를 반환대상문자열 : 복사된 결과가 저장될 문자열원본문자열 : 복사 할 문자열저장될 배열의 크기는 null까지 계산하고 정해야한다.최종 문자열의 포인터를 반환붙일문자열 : 어떤 문자열에 붙일 문자열최종문자열 : 최종 결과가 나올 문자열문자열 배열은
sprintf(배열, 서식지정자, 넣을 값);!값에는 변수로 넣을 수 있음!sprintf: 변수를 입력받고 원하는 문자열로 만들어 저장하는 함수이다. printf()와 달리 표준출력이 없다.sprintf 안의 내용들이 s1에 그대로 저장된다.
문자를 찾으면: 문자로 시작하는 문자열의 포인터를 반환문자가 없으면: NULL 반환strchr은 대소문자를 구분한다.위의 strchr이랑 똑같지만 strrchr은 뒤에서부터 검색한다.찾은 문자열의 첫 포인터를 반환(끝까지 출력됨)실제로는 문자 검색보다 문자열 검색이 더
대상문자열에서 기준문자로 자른 문자열을 반환더이상 자를 문자열이 없으면 NULL을 반환ptr = strtok(NULL, " ");에서 NULL의 의미는 직전 strtok함수에서 처리했던 문자열에서 잘린 문자열만큼 다음 문자로 이동한 뒤 다음 문자열을 자른다.원본 문자열
성공 : 변환된 정수 반환실패 : 0 반환문자열은 중수 이외의 알파벳 영문자, 특수만자 포함되면 해당 문자부터 변환을 하지 않는다.처음부터 정수가 아니면 0으로 반환된다.!23 -> 023! -> 23283a30 -> 283gd3 -> 0성공 : 변환된 정수 반환실패
c의 strcat()에 대해 보는중 strcat의 느린 이유에 대한 글을 읽었다.strcat()는 기존 문자열에 최종 문자열을 붙이기 할때마다 기존 문자열의 끝을 탐색하여 뒤에 이어 붙인다.i = 0: "abc"i = 1: "abcabc"i = 5: "abcabcabc
문자열에서 N개의 연속된 요소를 추출하는 방법"Hello" 문자열을 문자 단위 2-gram으로 추출Heellllo문자열의 처음부터 끝가지 이동하면서 2글자를 추출2-gram문자열 단위 2-gram