본문 바로가기
반응형

개발 Tools/C_개념9

C 개념 조건 연산자 ( ? : ) 3개의 피연산자를 갖는 3항 연산자가 있는데 바로 "? :"입니다. 이 연산자를 조건 연산자라고 합니다. 꼴은 간단합니다. 식1 ? 식 2 : 식 3 이때, 만약 식 1이 참이라면 식 2가 실행되고 거짓이라면 식 3이 실행됩니다. 예를 들어보겠습니다. int a = 1; int b = 4; a > b ? printf("a > b") : printf("b > a"); 출력 b > a 이와 같이 b가 a보다 더 크기 때문에 식 1의 조건이 거짓으로 되고, 식 3이 실행된 것입니다. 2022. 1. 12.
C 개념 최댓값 구하기 ( max ) 최댓값을 구하는 코드를 보면 굉장히 간단하다. 값을 입력받고, max 함수를 만들어서 비교 연산자를 사용하여 최댓값을 리턴해 주면 된다 #include int max(int a, int b, int c) { int max = a; if (b > max) max = b; if (c > max) max = c; return max; } int main() { int a, b, c; printf("3개의 값을 입력하세요: "); scanf_s("%d %d %d", &a, &b, &c); printf("max(%d, %d, %d) = %d", a, b, c, max(a, b, c)); } 출력 3개의 값을 입력하세요: 2 4 5 max(2, 4, 5) = 5 2022. 1. 12.
C 자료구조 문자열 ( strcpy, strlen, strcat, strcmp, strdup ) 문자열 c언어에서 문자열은 배열을 만들어서 저장한다. 배열의 칸 하나에 한 글자씩 저장한다. 이때 주의해야 할 점은 만약 내가 'hello'를 저장하고 싶다면 5글자지만 6칸의 배열을 만들어야 한다. 왜냐면 문자열이 끝났다는 NULL(\0) 문자를 넣어줘야 한다. 선언하는 방법은 2가지 정도가 있는데 차이점이 있다. char str[10]; str[0] = 'h'; str[1] = 'e'; str[2] = 'l'; str[3] = 'l'; str[4] = 'o'; str[5] = '\0'; 또는 char str[] = "hello"; 또는 char *str = "hello"; 출력법 printf("%s", str); 중요한 것은 ""이다. 첫 번째 선언 방법에서 \0가 없다면 hello 뒤에 이상한 문자.. 2022. 1. 10.
C언어 자료구조 메모리와 포인터 ( 포인터, 포인터와 배열, 포인터 arithmetic, 동적 메모리 할당, malloc ) 메모리 메모리란 데이터를 보관하는 장소이다. 1byte( =8bit ) 단위로 주소가 지정된다. 모든 변수는 주소를 가진다. 변수의 시작 주소 번호가 변수의 대표 번지다 포인터 포인터는 메모리 주소를 값으로 가지는 변수이다. int * ptr; int는 ptr이 가리키는 주소의 저장되는 데이터의 타입이 int임을 나타낸다 연산자 &는 변수로부터 그 변수의 주소를 추출하는 연산자이다. int x = 1, y = 2; int *ip; ip = &x; y = *ip; // 변수의 선언이 아니라 포인터 변수 앞에 등장하면 이 포인터 변수가 저장하고 있는 주소에 저장된 값을 의미한다. *ip = 0; // 포인터 변수가 저장하고 있는 주소에 저장된 값에 0을 집어넣는다. 아래 2개의 *ip에서 *ip는 이 포인터.. 2022. 1. 10.