본문 바로가기

728x90
반응형

C언어/C언어 문법

(51)
[C언어] 심볼릭 상수 (Symbolic Const) 심볼릭 상수 (Symbolic Const) 심볼릭 상수란 변수와 마찬가지로 사용자가 원하는 이름을 지정하고 값을 받을 수 있다. 변수와 심볼릭 상수의 다른 점은 변수는 값의 변경이 가능하지만 심볼릭 상수는 한 번 선언하면 그 값을 바꿀 수 없다. 따라서 초기화를 할 때 값을 값이 입력해야 하고 그렇지 않으면 쓰레기 값이 입력되어 버린다. 심볼릭 상수를 선언하는 방법은 변수와 같은 방법으로 선언하되 const를 자료형 앞에 붙이는 것으로 심볼릭 상수를 선언할 수 있다. #include int main () { const int MAX = 300; // 이 후 값을 변경할 수 없음 // 값을 변경하기 위해 MAX = 200; 이라고 입력을 하면 오류가 발생 printf("%d", MAX); return 0;..
[C언어] 형변환 (Type Casting) 형 변환 변수를 선언한 이후에도 변수의 자료형을 바꾸는 것이 가능하다. 이러한 자료형의 변환에는 자동 형 변환과 강제 형 변환 두 가지 종류가 있다. 자동 형 변환 자동 형 변환은 하나의 연산식에 들어있는 연산자들의 자료형이 다를 때 자동(묵시적)으로 발생한다. 대입 과정에서의 자동 형 변환 우선 대입 과정에서 일어나는 자동 형 변환을 살펴보겠다. double num = 245; 위 코드에서 245는 int형 정수이다. 그런데 double 형인 num에 대입함으로써 double형 실수 245.000000으로 변환된다. 마찬가지로 실수인 상수를 정수형 변수에 대입해도 형 변환이 일어난다. int num = 3.1415; 위 코드에서는 3.1415 가 정수 int형으로 변환되면서 데이터의 손실이 일어난다. ..
[C언어] 연산자 (산술, 대입, 관계, 논리, 복합대입, 증강 연산자) 산술 연산자 산술 연산자는 사칙연산에 활용되는 기호들을 의미한다. 연산식들은 함수의 인자 전달 위치에도 올 수 있다. #include int main () { int num1 = 7; int num2 = 2; printf("%d + %d = %d \n", num1, num2, num1+num2); printf("%d + %d = %d ", 7, 2 , 7+2); } // 두 개의 printf 함수 모두 같은 값을 출력 함수의 인자 전달 위치에는 연산식 뿐만 아니라 다른 함수의 반환값도 올 수 있다. #include int main () { int num = 7; printf("%d", sizeof(num)); // int형 변수인 num 의 크기를 출력 } 대입 연산자 대입 연산자는 초기화를 할 때나 값..
[C언어] 비트 연산, 비트 연산자 비트(bit)와 바이트(byte) 컴퓨터에서 데이터를 표현하는 단위를 비트와 바이트로 구분할 수 있다. 위 그림은 컴퓨터가 인식하는 데이터를 그림으로 나타낸 것이다. 0과 1을 표현하는 하나의 단위를 1비트라고 표현하고 8개의 비트가 모여서 1바이트가 된다. 1개의 비트로 표현할 수 있는 정보는 0 과 1 2개이므로 1바이트가 표현할 수 있는 정보의 수는 2의 8제곱 즉 256 가지이다. 따라서 1바이트 크기인 char형이 -128~127까지 총 256가지의 숫자가 표현 가능한 것이다. 2진수 정수 정수는 다음과 같은 형태로 표현이 된다. 맨 앞에 있는 수를 '가장 중요한 비트'라는 의미의 MSB (Most Significant Bit) 라 하는데 이 수가 0이면 양수, 1이면 음수를 나타낸다. 따라서 ..
[C언어] sizeof 함수 sizeof 함수 sizeof 함수를 사용하면 변수의 자료형의 크기를 알 수 있다. 아래 코드는 int형 변수 i 와 double형 변수 d를 선언하고 그 크기를 출력하는 코드이다. #include int main () { int i = 0; double d = 0.0; int sizei = 0; int sized = 0; sizei = sizeof(i); sized = sizeof(d); printf("int의 크기 : %d바이트, double의 크기 : %d바이트", sizei, sized); return 0; }
[C언어] 필드 폭 지정 필드 폭 지정 출력할 때 콘솔 창에 보이는 문자들을 정렬하여 출력할 수도 있다. 이때 서식 문자를 사용해서 필드 폭을 정렬할 수 있다. 만약 정수를 출력할 때 %d 가 아니라 %8d를 사용하면 필드 폭을 8칸 확보하고 오른쪽 정렬해서 출력을 진행한다. %-8d를 사용하면 필드 폭을 8칸 확보하고 왼쪽 정렬해서 출력을 진행한다. 이해를 돕기 위해 오른쪽 정렬과 왼쪽 정렬의 차이를 비교해보겠다. #include int main () { int a = 30; int b = 300; int c = 3000; int d = 30000; int e = 300000; printf("필드 폭이 10칸 일 때 오른쪽 정렬\n"); printf("%10d\n%10d\n%10d\n%10d\n%10d\n\n", a, b, c..
[C언어] 이스케이프 시퀀스 (Escape Sequence) 이스케이프 시퀀스 (Escape Sequence) 이스케이프 시퀀스란 이스케이프 문자로 시작하는 의미를 갖고 있는 문자열을 말한다. \a는 경고음 발생. \b는 백스페이스, \t는 수평 탭, \v는 수직 탭, \'는 작은따옴표 출력, \"는 큰따옴표 출력, \?는 물음표 출력, \\는 역슬래시 출력, \0는 널(Null)문자를 의미한다. 이스케이프 시퀀스들을 표로 정리하면 다음과 같다. 여기서 사용되는 백슬래시(역슬래시)는 \ 키 이다. \n, \b 에 대해서만 예시를 들어보겠다. #include int main () { char ch[5] = "apple"; printf("%s\b%s\n%s", ch, ch, ch); return 0; } 위 코드의 결과는 applapple apple 이다. apple..
[C언어] 서식 문자, 입출력 함수 (printf, scanf) 출력 함수 (printf) printf 함수를 사용하면 원하는 내용을 콘솔창에 출력할 수 있다. Hello World!라는 내용을 출력하는 코드를 작성해보겠다. #include int main (void) { printf("Hello World!"); return 0; } 입력 함수 (scanf) scanf 함수를 사용하여 변수에 원하는 값을 저장할 수 있다. ​ scanf 함수도 printf 함수와 마찬가지로 변수를 사용할 때 서식 문자가 필요하다. 그리고 변수 이름을 받을 때 변수의 주소를 나타내는 &를 함께 사용해야 한다. 따라서 아래코드는 num이라는 정수형 변수를 선언하고 초기화를 한 후에 scanf로 값을 받아서 저장하겠다는 의미이다. #include int main () { int num =..

728x90
반응형