본문 바로가기

Programming/C11

구조체 구조체구조체 개념struct MyStructure { int myNum; char myLetter;};구조체 또한 배열처럼 여러 데이터를 그룹으로 묶어 하나의 자료형으로 정의하고 사용하는 자료형입니다.하지만 배열은 같은 자료형만 저장이 가능하지만 구조체는 서로 다른 다양한 자료형을 하나로 묶을 수 있습니다. 자료를 일정한 단위 형식으로 구성하는데 이를 레코드라고 합니다. 이런 레코드를 구성하는 항목을 필드라고 하고, 레코드가 여러개 모이면 파일이라고 합니다. 이런 레코드를 구조체를 사용해서 정의할 수 있습니다.파일레코드필드필드필드  구조체 선언// 선언 형식struct 구조체형이름 { 자료형 항목1; 자료형 항목2; ... 자료형 항목n;};// 사용형식struct 구조체이름 구.. 2024. 8. 28.
포인터 포인터메모리 주소C언어를 포함해서 대부분의 언어는 변수를 생성하면 메모리 주소에 변수를 할당합니다. 메모리 주소는 변수가 저장된 메모리 위치입니다.  그래서 변수에 값을 저장하면 메모리 주소에 값이 저장됩니다. 다른 언어와 달리 C언어는 이런 메모리 주소에 접근할 수 있습니다.& 키워드는 변수의 메모리 주소를 알아낼 때 사용됩니다. int myAge = 43;printf("%p", &myAge); // 출력 0x7ffe5367e044메모리 주소는 16진수이기 때문에 0x--- 형식으로 출력됩니다.  포인터란?포인터는 메모리에 있는 데이터의 주소를 가지고 있는 변수입니다.  포인터 선언int* num;char* c;float* f;자료형*  변수이름; 으로 선언합니다. int num = 10;int* po.. 2024. 8. 15.
문자열과 boolean StringC언어에는 다른 언어와 달리 문자열을 저장하기 위한 자료형인 String 타입이 존재하지 않습니다. 따라서 문자열을 표현하기 위해서는 문자 배열을 사용해야 합니다.char greetings[] = "Hello World!";printf("%s", greetings);C언어에는 String 타입이 없지만 String 타입을 출력하기 위한 서식 지정자 %s가 존재합니다. 따라서 위에 코드를 실행하면 화면에 Hello Wolrd!가 출력됩니다. char greetings[] = "Hello World!";printf("%c", greetings[0]);또한 문자 배열이기 때문에 인덱스 번호로 접근이 가능합니다. 위에 코드를 실행하면 0번 인덱스 H가 출력됩니다. 전처리기 를 사용하면 String 타.. 2024. 8. 15.
배열 배열이란?int n1 = 1;int n2 = 2;int n3 = 3;int n4 = 4;int n5 = 5;int n6 = 6;만약 배열이 없다면 위에 코드와 같이 작성해야합니다. 이러한 방법은 위에 코드가 변수가 적기 때문에 괜찮지만 후에 변수가 1000 개, 10000 개가 넘게 되면 관리하기 매우 어려워지게 됩니다. 이런식의 문제를 해결하기 위해 배열을 사용합니다. int myNumbers[] = {25, 50, 75, 100};printf("%d", myNumbers[0]);// 출력 25 배열은 동일한 타입의 데이터가 여러개 저장된 데이터 저장장소로 데이터에 접근하기 위해서는 데이터에 붙여진 인덱스 번호로 접근합니다.  배열의 선언 방법자료형 배열이름[배열의크기]; 지정된 자료형에 배열이름을 가.. 2024. 8. 15.
break문과 continue문 BREAK문#includeint main(void) { int n = 0; while(1) { if(n == 4) { break; } n++; } return 0;}break문은 반복문을 탈출하기 위해서 사용됩니다. 반복문 안에서 break문이 실행되면 반복문을 빠져 나오게 됩니다.  CONTINUE문#includeint main(void) { int n = 0; while(n continue문은 현재 실행하고 있는 반복문의 나머지를 생략하고 다음 반복을 시작하게 합니다.   출처W3school W3Schools.comW3Schools offers free online tutorials, references and .. 2024. 8. 15.
반복문 반복문WHILE 문int n = 0;while(n  while문의 경우에 괄호 안의 조건이 참일때 까지 반복하는 반복문입니다. 위에 코드를 예시로 보면 n이 10이 되기 전까지 반복하게 됩니다. 0~9까지 반복하게 되고 마지막 9에서 반복문을 실행하게 되면 n이 10이 되어 while문 조건식에서 확인했을 때 조건이 거짓이므로 반복문을 탈출하게 됩니다.while문의 경우 보통 반복횟수가 정해져 있지 않고 반복문 실행영역에서 조건값이 어떤식으로 변할지 모를 때 사용합니다. DO~WHHILE 문int n = 0;do { printf(n); n++;} while(n do~while 문은 while문과 비슷한 기능을 제공합니다. 하지만 다른점은 선 실행 후 조건 감사를 한다는 점이 다릅니다.while.. 2024. 8. 14.
조건문 조건문IF 문if(조건식) { 조건식이 참이면 실행하는 영역}if문은 조건식이 참인 경우 실행영역을 실행하고 거짓일 경우에는 무시하고 넘어가는 문법입니다. ELSE 문if(조건식) { 조건식이 참이면 실행하는 영역}else { 거짓이면 실행하는 영역}if문이 참일 경우 if문의 실행 영역을 실행하고 else문의 실행영역을 무시하고 넘어갑니다. 하지만 if문이 거짓일 경우에는 if문의 실행영역을 무시하고 else문의 실행 영역을 실행하게 됩니다. ELSE IF 문if (조건식1) { 조건식 1이 참이면 실행하는 영역}else if (조건식2) { 조건식1이 거짓 조건식 2가 참이면 실행하는 영역}else { 거짓이면 실행하는 영역}else if문은 if~else if~els.. 2024. 8. 14.
연산자 연산자(Operators)산술 연산자연산자연산자의 기능=연산자 오른쪽에 있는 값을 왼쪽에 있는 변수에 대입+피연산자의 값을 더함-왼쪽 피연산자 값에 오른쪽 피연산자 값을 뺌*피연산자의 값을 곱함/왼쪽 피연산자 값을 오른쪽 피연산자의 값으로 나눔%왼쪽 피연산자 값을 오른쪽 피연산자 값으로 나누고 남은 나머지  복합(Compound) 대입 연산자연산자연산자의 기능+=연산자 왼쪽에 연산자 오른쪽 값을 더함-=연산자 왼쪽에 연산자 오른쪽 값을 뺌*=연산자 왼쪽에 연산자 오른쪽 값을 곱함/=연산자 왼쪽에 연산자 오른쪽 값을 나눔%=연산자 왼쪽에 연산자 오른쪽 값을 나눈 나머지 관계 연산자연산자연산자의 기능연산자 왼쪽이 연산자 오른쪽보다 작은가?>연산자 왼쪽이 연산자 오른쪽보다 큰가?연산자 왼쪽이 연산자 오른쪽보다.. 2024. 8. 14.
C언어 데이터 타입 데이터 타입(Data Type)자료형종류메모리 크기char문자형1byteshort정수형2byteint4bytelong4bytelong long8bytefloat실수형4bytedouble8bytelong double8byte 이상 데이터 타입은 변수가 저장할 정보의 크기와 유형을 지정합니다. UNSIGNEDc언어에는 unsigned라는 키워드가 존재합니다. unsigned 키워드는 부호가 없는 버전의 자료형을 표현할 때 사용합니다. 즉 음수표현이 없는 양수를 표현합니다. 예를 들면 char의 경우 표현범위가 -128~127이지만 unsigned char를 사용할경우 0~255의 표현 범위를 가지게 됩니다. 서식 지정자지정자자료형%d, %iint%f float%lfdoube%cchar%sString 서식 지.. 2024. 8. 14.