본문 바로가기
[C언어 기초-14] sizeof 연산자. 자료형 byte 구하기 sizeof 연산자sizeof 연산자는 바로 다음에 나오는 상수, 변수나 자료형이 점유하고 있는 메모리의 byte수를 구해주는 전위 표기 단항 연산자이다.sizeof 연산자는 바로 다음에 나오는 수식이나 자료형은 반드시 괄호를 사용해야 한다.sizeof 연산자는 연산자로 특수기호를 사용하지 않고, 예약어를 사용한다.sizeof 연산자는 프로그램의 이식성을 향상시킬 수 있다.예제)1234567891011121314151617#include stdio.h> main() {    short x = 0;    long y = 0;     printf("Short Integer x    :    %d\n", sizeof y);    printf("Integer        :    %d\n", sizeof(int.. 2024. 8. 4.
[C언어 기초-13] 캐스트 연산자(cast operator) 캐스트 연산자캐스트 연산자는 명시적인 형 변환이 필요할 때 사용하는 단항 연산자이다.캐스트 연산자는 원하는 데이터형을 소괄호로 묶어 피연산자 앞에 둠으로써 데이터 형을 변환하는 역할을 한다.수식의 형 변환을 위해 사용할 때는 캐스트 연산자를 소괄호로 묶지 않아도 된다.캐스트 연산자의 결합방향은 오른쪽에서 왼쪽이다.예를 들어 5 / 2처럼 정수끼리의 나눗셈은 몫 2만 출력하는데 (float)로 형 변환을 하고 출력을 하면 2.5가 출력된다.예시 코드를 보자.1234567891011121314151617181920212223242526#include stdio.h> main() {    float n1, n2, result;     n1 = 14.5;    n2 = 53.62;     result = 5 /.. 2024. 8. 3.
[C언어 기초-12] 콤마 연산자(comma operator) 콤마 연산자콤마 연산자는 연산 기호가 콤마(,)여서 콤마 연산자이다.","로 분리된 수식들을 왼쪽에서 오른쪽으로 평가하고 수식 전체의 값은 가장 오른쪽의 값이 된다. c에서 콤마는 두 가지 용도로 사용되는데 첫째는 인자나 변수따위를 구분하는 구분기호.둘째가 콤마 연산자이다. 예시를 보면서 설명을 이어가보면123456789101112131415#include stdio.h> main() {    int x = 0, y = 0;     int comma, box;     comma = (box = 2, ++box, box = box + 3, box + 5);    x = (y + 5, y + 4, (y = 20) + 6);     printf("comma = %d, box = %d\n", comma, box.. 2024. 8. 2.
[C언어 기초-11] 조건 연산자(conditional operator) 삼항 연산자 조건 연산자조건 연산자는 3개의 피 연산자를 필요로 하는 삼항 연산자이다.조건 연산자의 일반적인 형식은조건식 ? 연산식1 : 연삭식2; 조건 연산자는 조건수식이 먼저 수행되어 참(1)이면 연삭식1을 수행하고, 거짓(0)이면 연산식2를 수행한다.ex)a = 2 > 1? 3 : 5;이를 풀어서 설명해 보면 2가 1보다 크다면~? 3이고 아니면 5이다. 뭐 약간 조건식이 이렇다면? 이거고 아니면 저거다 이런 뉘양스라서 ? : 이렇게 구분하는 것 같은 느낌적인 느낌 당연하지만 조건 연산자는 if 문으로 풀어서 작성할 수 있다.if(2>1){ a = 3;} else { a = b;} 이렇게 할 걸 한 줄로 요약할 수 있으니 간편하다. 예제)키보드에서 입력된 데이터가 홀수이면 "ODD", 짝수이면 "EVEN"을 출.. 2024. 8. 1.
[C언어 기초-10] 복합 대입 연산자 (산술 대입 연산자, 비트 대입 연산자) 복합 대입 연산자복합 대입 연산자란 산술 연산자, 비트 연산자와 대입연산자가 결합된 이항연산자이다.복합 대입 연산자는 코드를 좀 더 간결하게 표현할 수 있다.산술 대입 연산자연산자의미사용동일 표현설명+=덧셈x += yx = x + yx와 y를 더해서 x에 대입-=뺄셈x -= yx = x - yx에서 y를 빼서 x에 대입*=곱x *= yx = x * yx와 y를 곱해서 x에 대입/=나누기 (몫)x /= yx = x / yx에서 y를 나누고 몫을 x에 대입%=나누기 (나머지)x %= yx = x % yx에서 y를 나누고 나머지를 x에 대입 산술연산자에 대한 간략한 설명은 아래 링크에 있다.[C언어 기초-05] 연산자 (대입, 산술, 증감연산자)아래 코드는 예시123456789101112131415161718.. 2024. 8. 1.
[C언어 기초-09] 비트 연산자 논리 연산자 ~, &, |, ^ 비트 논리 연산자는 하나의 단항 연산자(~)와 세 개의 이항 연산자(&, |, ^)로 구성되어 있다. 논리 연산자와 기본 메커니즘은 같다고 생각하면 되고 비트는 0과 1로 되어있으니 0이 거짓 1이 참으로 생각하면 된다. 연산자 의미 사용법 기능 ~ 비트 부정 (NOT) ~ x x의 각 비트를 반전 1의 보수 연산 & 비트곱 (AND) x & y x, y를 각 비트 단위로 AND 연산 | 비트합 (OR) x | y x, y를 각 비트 단위로 OR 연산 ^ 배타적 논리합 (XOR) x ^ y x, y를 각 비트단위로 XOR 비트 부정(~)은 0은 1로 1은 0으로 바꾸면 된다. (NOT) 비트곱은 두 값이 1일 경우만 1로 계산한다. (AND) 비트합은 둘 중 하나라도 1이면 1로 계산한다. (OR) 배타.. 2024. 1. 25.
[C언어 기초-08] 비트 연산자 시프트 연산자 시프트 연산자 비트 시프트 연산자는 왼쪽의 값을 오른쪽 값만큼 비트를 왼쪽 혹은 오른쪽으로 이동시키는 연산자이다. 결과적으로는 비트를 이동시킬 때마다 2의 거듭제곱만큼 곱셈 또는 나눗셈을 한다. 연산자 의미 기본 형식 설명 > y x의 비트 표현을 y값 만큼 오른쪽으로 이동 왼쪽 이동 연산 비트를 왼쪽으로 이동시키며 이동 후 오른쪽 빈 공백은 0을 채워 넣고 왼쪽에서 밀려난 비트들은 버린다. 예를 들어 4 > 3 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 16을 8비트로 표현한 후 오른쪽으로 이동시킨다. 값은 2가 된다. 16 / (2의 3제곱)이 된다. 2024. 1. 8.
c언어 년도를 입력받아서 윤년, 평년을 판단하는 프로그램 윤년의 조건을 보면 쉽다. 먼저 윤년이란 우리가 2월은 28일에 항상 끝나지만 4년에 한 번씩 29일날이 있다. 그 해를 윤년이라고 한다. ==윤년 조건== 1. 4로 나누어 떨어지면서 100으로 나누어 떨어지지 않는다. 2. 400으로 나누어 떨어진다. 1. 은 동시 조건이다 4로 나누어 떨어지면서 100으로 나눠 떨어지면 평년이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 #include main() { int year; printf("연도 입력 : "); scanf("%d", &year); if ((year % 4) == 0 && (year % 100) != 0 || (year % 400) == 0) printf("%d년은 윤년\n", year); else printf("%d년은 평년\.. 2021. 8. 21.
[C언어 기초-07] 논리 연산자 and, or, not연산자 &&, ||, ! 관계 연산자는 , 뭐 이렇게 생겨먹어서 대충 필수 교육 과정을 거치면 의미를 이해하기 쉽다. 보다 크다, 작다 뭐.. 근데 논리연산자는 생겨먹은게 &&, ||, ! 뭐 이렇게 생겼다. 저게 뭐지 뭐 느낌표는 팩토리얼인가... 논리 연산자 연산자 의미 기본 형식 기능 && 논리곱 (and) x && y x와 y의 값이 모두 참이면 참 하나라도 거짓이면 거짓 || 논리합 (or) x || y x나 y 중 하나라도 참이면 결과값은 참. 둘다 거짓이면 거짓 ! 논리부정 (not) !x x의 논리 값이 참이면 거짓, 거짓이면 참 - && and연산자라고도 한다. 보통 조건문 같은대서 모든 조건을 만족시켜야할 경우에 사용하곤 한다. int a = 3; int b = 4; if( a < 10 && b < 10) { .. 2021. 8. 21.
[C언어 기초-06] 관계(비교) 연산자 관계연산자 수식과 수식사이의 대소, 동등, 관계를 비교하는 이항연산자이다. 수식의 결과는 참, 거짓이 나오는데 C언어에서는 참이면 1, 거짓은 0이 나온다. 주로 다른 언어에서는 true false값이 나온다. 주로 if문이나 while문의 조건식으로 사용한다. 관계 연산자에는 > , =, . =, b); 7printf("%d + (2 > %d) = %d\n", a, b, a + (2 > b)); 8printf("%d c); 13printf("%d %d > %d = %d\n", a, b.. 2021. 8. 18.
[C언어 기초-05] 연산자 (대입, 산술, 증감연산자) C언어 연산자 대입연산자 앞서 나온 변수와 자료형 편에서 이미 대입연산자의 정의 아닌 정의가 나오기도 했고... 뭐 여러 코드를 실습하고 보면은 그냥 자연스레 몸에 익혀진다. 우선 대입연산자는 ' = ' 이다. 여기서 equal(동일)의 의미가 아닌 assign(할당하다)이다. 즉 변수 = 데이터; 는 변수에 데이터를 할당하다, 배정하다, 대입하다가 되는 것이다. 쉽게 오른쪽에 있는 값을 왼쪽에 넣는다. int n;// 정수형 변수 n 선언 n = 10;// 변수 n에 정수 10을 대입하여 초기화 이런식으로 사용할 수 있다. 아주 간단하다. 산술연산자 산술 연산자는 +, -, *, /, % 이렇게 다섯개 있다. 변수에 값을 할당하여 산술연산자로 계산을 해도 되고 그냥 쌩값과 값대로 계산해도 된다. (변수.. 2021. 8. 3.
[C언어 에러 해결] Visual Studio 2019 scanf() C4996 에러해결 C4996 오류 scanf: This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. Visual Studio 에서 scanf()를 사용하면 저런 에러가 뜬다. 번역기를 돌려보면 이 함수 또는 변수는 안전하지 않을 수 있습니다. 대신 scanf_s를 사용하는 것이 좋습니다. 지원 중단을 비활성화하려면 _CRT_SECURE_NO_WARNNINGS를 사용하세요. 자세한 내용은 온라인 도움말을 참조하십시오. 이렇게 뜬다. scanf_s를 쓰던지 _CRT_SECURE_NO_WARNINGS 를 사.. 2021. 8. 2.
[C언어 기초-04] 데이터 입출력 2. scanf() 표준입출력함수 Scanf() 저번 글에 printf()에 대해 알아보았다. 이번에는 scanf()에 대해 알아보자. scanf()도 printf()랑 마찬가지로 헤더파일을 입력해줘야 한다. #inclue 사용 방법도 별 차이가 없다. #include main(){ int num;//정수형 변수 선언 printf("숫자를 입력해주세요 : "); scanf("%d", &num);//정수타입 입력 printf("입력한 수는 : %d", num); } printf()와 마찬가지로 입력 형식을 "" 안에 변환형식 %d 와같이 사용하고 &num 2021. 7. 27.
[C언어 기초-01] Visual Studio 2019 설치하기 개발환경 visual studio 2019 c언어를 공부하기 위해선 비주얼스튜디오가 필요하다.뭐 이클립스나 다른 컴파일러도 상관은 없다.하지만 내가 사용하는 것이 이거이기 때문에 이걸로 우선 설치를 해보자.그런데 이게 뭘까?? 간단하게 얘기하자면 프로그램을 만드는 프로그램툴이라고 생각하면 된다.그것만 알아도 충분하다. 뭐 좀 있어보이게 얘기하자면 사람이 프로그래밍한 언어를 컴퓨터가 알아들을 수 있게 기계어로 변환해주는 번역기라 보면 된다. 우선 visual studio 2019 다운 이 링크에 들어가면 아래처럼 세개의 다운로드가 있다.우리는 무료로 사용할 수 있는 커뮤니티를 설치할 것이다. 다운로드를 받고 exe 파일을 실행해보자. 계속을 누른다. 기다리라는 말을 잘 들으면 된다. 기다리면 이렇게 화면이 뜬다. .. 2020. 10. 28.
[c언어 시작] 개발자가 되려면 c언어를 공부해야 하는 이유 4차산업시대, IT, 인공지능, IOT, 빅데이터, VR/AR, 스마트폰, 스마트, 스마트, 스마트 뭐 요즘에는 초등학생 때부터 코딩을 배운다는 말이 있다. 실제로 그런지 안 그런지는 내가 뭐 조사해본 적도 없어서 잘은 모르겠지만 아무튼 예전에 내가 초등학생 때 가벼운 마음으로 방과 후 학교에서 컴퓨터를 배우며 컴이조아 같은 뭐 이상한 걸 했는데 그때보단 컴퓨터에 접근하기가 더 수월해졌으리라 본다. 개발자.. 나는 뭔가 개발자란 단어가 멋있어 보였다. 뭔가 개발하는 사람이여서 멋있고 특히나 예전부터 지금까지 쭉 좋아하는 게임들도 그들이 만들고 나도 그렇게 되고 싶기도 했다. 내 주위에도 비전공자인데 개발자가 되고 싶어하는 경우를 봤다. 비전공자가 할 수 있느냐?? 충분히 가능하다고 본다. 나 같은 경우는.. 2020. 10. 17.