Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 프로그래밍

  1. C/C++에서 포인터를 활용하는 4가지 핵심 방법

    포인터(pointer)는 C와 C++에서 가장 강력하면서도 중요한 개념 중 하나입니다. 단순히 변수의 메모리 주소를 저장하는 것을 넘어, 포인터는 배열 접근, 동적 메모리 관리, 효율적인 함수 호출 등 다양한 용도로 활용됩니다. 이번 글에서는 포인터의 대표적인 활용 사례를 C와 C++ 예제 코드와 함께 살펴보겠습니다. 1. 배열 요소에 접근하기 배열의 이름은 사실상 첫 번째 요소를 가리키는 포인터처럼 동작합니다. 따라서 포인터 연산을 이용하면 인덱스 없이도 배열 요소에 접근할 수 있습니다. C 예제 #include <stdio

  2. C 언어 함수 포인터의 개념과 활용법

    함수 포인터(Function Pointer)는 일반 포인터가 변수의 메모리 주소를 저장하듯이, 코드(함수)의 주소를 가리키는 포인터입니다.함수 포인터에서는 함수 이름 자체가 곧 함수의 시작 주소를 의미하기 때문에, 함수 이름을 사용하여 해당 함수의 주소를 얻을 수 있습니다.또한 함수 포인터를 활용하면 함수를 다른 함수의 인자(argument)로 전달하거나, 함수의 반환값으로 함수를 리턴하는 것도 가능합니다. 이러한 특성 덕분에 콜백(callback) 함수 구현이나 유연한 코드 설계에 널리 사용됩니다.선언 방법함수 포인터는 아래와 같

  3. C/C++ 포인터 비교 방법 – 관계 연산자 활용법과 주의사항

    C/C++ 포인터 비교의 기본 원리두 포인터가 같은 배열을 가리키고 있다면 서로 비교할 수 있습니다. 이때 관계 연산자(<, >, <=, >=)를 사용해 두 포인터의 상대적인 위치를 판단합니다. 반면, 포인터는 메모리 주소를 다루는 특수한 변수이기 때문에 일반 숫자처럼 곱셈이나 나눗셈을 수행할 수는 없습니다.C 언어에서의 포인터 비교예제 코드#include <stdio.h> int main() {     int *p1;     

  4. C/C++에서 포인터 변수를 선언하는 방법 총정리

    포인터(pointer)는 다른 변수의 메모리 주소를 저장하는 특수한 변수입니다. C/C++에서 포인터 변수를 선언하려면 변수 이름 앞에 별표(*, asterisk)를 붙이면 됩니다.선언 문법*pointer_name포인터 선언 시 사용되는 핵심 연산자는 두 가지입니다.& (주소 연산자): 변수의 메모리 주소를 얻습니다.* (역참조 연산자, 역참조): 포인터가 가리키는 주소에 저장된 값에 접근합니다.C 언어에서의 포인터 선언다음 예제는 정수형 변수 a의 주소를 포인터 p에 저장하고, 이를 활용해 값을 읽고 수정하는 과정을 보여줍

  5. C/C++에서 void 포인터를 삭제하는 것은 안전할까? 위험한 이유와 예제

    void 포인터란 무엇인가? void 포인터(void pointer)는 특정 데이터 타입과 연결되어 있지 않은 포인터를 의미합니다. 메모리상의 데이터 위치, 즉 변수의 주소를 가리키지만, 그 대상이 int형인지 float형인지 등의 타입 정보는 갖고 있지 않습니다. 이러한 특성 때문에 범용 포인터(general purpose pointer)라고도 불립니다. void 포인터 삭제가 안전하지 않은 이유 C++에서 void 포인터를 delete로 삭제하는 것은 안전하지 않으며, 미정의 동작(undefined behavior)을 초래할

  6. C와 C++에서 NULL 포인터 정의가 다른 이유

    C와 C++은 문법이 매우 비슷해 보이지만, NULL 포인터 상수(null pointer constant)를 정의하는 방식에는 미묘하면서도 중요한 차이가 있습니다. 이 차이는 두 언어의 타입 시스템 설계 철학에서 비롯된 것입니다. C++에서의 NULL 포인터 C++에서 널 포인터 상수는 값이 0인 정수 상수 표현식(integer constant expression)으로 정의됩니다. 예를 들어 다음과 같이 작성할 수 있습니다. int* p = 0; 여기서 주목할 점은 C++에서는 (void*)0 형태의 캐스팅을 널 포인터 상수로 인

  7. C/C++에서 delete 전에 NULL 포인터를 검사하는 이유는 무엇일까?

    C/C++에서 delete 전에 NULL 포인터를 검사하는 이유결론부터 말하자면, delete를 호출하기 전에 포인터가 NULL인지 검사하는 것은 대부분의 경우 불필요합니다.C++ 표준은 NULL(또는 nullptr)로 설정된 포인터에 대해 delete를 수행하면 아무런 동작도 하지 않도록(no-op) 보장합니다. 즉, 널 포인터를 삭제해도 프로그램이 비정상 종료되거나 메모리가 손상되지 않으므로, 별도의 널 검사 없이도 안전하게 호출할 수 있습니다.그렇다면 왜 널 검사 코드를 작성할까?그럼에도 일부 개발자가 delete 전에 널 검

  8. 대각선을 이용해 마름모의 둘레를 구하는 C 프로그램

    마름모는 네 변의 길이가 모두 같은 단순한 사각형입니다. 마름모의 둘레(perimeter)는 크게 두 가지 방법으로 구할 수 있습니다.네 변의 길이를 모두 더하는 방법대각선의 길이를 이용하는 방법사각형은 두 개의 대각선을 가지며, 대각선의 길이를 알면 이를 바탕으로 해당 사각형의 넓이와 둘레를 모두 계산할 수 있습니다.대각선으로 둘레를 구하는 공식마름모의 두 대각선 길이가 각각 d1과 d2일 때, 대각선을 이용해 마름모의 둘레를 구하는 공식은 다음과 같습니다.둘레 = 2 × √(d1² + d2²)프로그램 로직대각선을 사용해 마름모의

  9. 정삼각형의 넓이와 둘레를 계산하는 프로그램

    삼각형은 세 개의 변으로 이루어진 닫힌 도형입니다. 그중 정삼각형은 세 변의 길이가 모두 같은 삼각형을 의미합니다. 정삼각형의 넓이와 둘레는 아래 공식을 사용해 손쉽게 구할 수 있습니다. 정삼각형의 넓이 = (√3)/4 × a2 정삼각형의 둘레 = 3 × a 코드 로직 정삼각형의 넓이를 계산하려면 제곱근 함수와 거듭제곱 연산이 필요합니다. C 언어에서는 math.h 헤더 파일에 포함된 sqrt() 함수를 사용해 제곱근을 구할 수 있으며, 거듭제곱은 곱셈 연산으로 간단히 처리할 수 있습니다. 다음은 정삼각형의 넓이와 둘레를 계산하는

  10. C 언어로 사다리꼴의 넓이와 둘레를 계산하는 프로그램

    사다리꼴(Trapezium)은 한 쌍 이상의 변이 서로 평행한 사각형을 의미합니다. 사다리꼴의 넓이와 둘레는 아래의 기본적인 수학 공식을 활용하여 손쉽게 구할 수 있습니다.계산 공식둘레 = 모든 변의 길이의 합넓이 = ½ × (평행한 두 변의 길이 합) × 평행한 두 변 사이의 수직 거리코드 로직이 프로그램에서는 사다리꼴의 네 개 변과 평행한 두 변 사이의 수직 거리를 나타내기 위해 총 5개의 변수를 사용합니다. 넓이 계산에는 float 자료형 변수를 선언하고, ½ × (평행한 두 변의 길이 합) × 평행한 두 변 사이의 수직 거리

  11. C언어로 사면체의 표면적과 부피 계산하기

    사면체(Tetrahedron)는 삼각형을 밑면으로 하는 피라미드 형태의 입체 도형입니다. 즉, 밑면이 하나의 삼각형으로 이루어져 있고, 각 측면 역시 삼각형으로 구성되어 있습니다. 세 개의 측면 삼각형은 모두 한 점(꼭짓점)에서 만나게 됩니다. 아래 그림과 같습니다.코드 로직사면체의 표면적과 부피를 구하는 코드는 math 라이브러리의 sqrt와 pow 함수를 사용하여 제곱근과 거듭제곱을 계산합니다.표면적 계산: 정사면체의 한 변의 길이가 a일 때, 표면적은 다음 수식으로 구할 수 있습니다.표면적 = (√3 × a²)부피 계산: 부피

  12. C 언어로 정사각형에 내접한 원의 면적 구하기

    정사각형에 내접하는 원(inscribed circle)이란 정사각형의 네 변에 모두 닿는 원을 말합니다. 즉, 내접원의 지름은 정사각형 한 변의 길이와 같습니다. 따라서 원의 면적은 다음 공식을 사용하여 간단히 계산할 수 있습니다.면적 = (π/4) × a × a  (여기서 a는 정사각형 한 변의 길이)내접원의 반지름 r은 정사각형 변 길이의 절반(a/2)이므로, 일반적인 원의 넓이 공식 πr²에 대입하면 π(a/2)² = (π/4)a²가 되는 것과 같습니다.코드 로직정사각형 안에 내접한 원의 면적은 공식 ((π/4) ×

  13. 정삼각형의 외접원 넓이를 계산하는 C 프로그램

    정삼각형의 외접원이란?외접원(circumcircle)은 정다각형의 모든 꼭짓점을 원주 위에 두르는 원으로, 다각형 전체가 원 안에 담기도록 감싸는 원을 말합니다. 여기서는 원에 내접하는 삼각형이 정삼각형인 경우를 다룹니다.정삼각형의 외접원 넓이는 다음 공식으로 구할 수 있습니다.외접원의 넓이 = a × a × (π ÷ 3)이 공식이 성립하는 이유는 정삼각형의 외접 반지름 R이 한 변의 길이 a ÷ √3이기 때문입니다. 외접원의 넓이는 πR²이므로, 이를 정리하면 π × a² ÷ 3이 됩니다.코드 로직정삼각형의 외접원 넓이는 수학 공

  14. C언어로 구각형(에네아곤)의 면적 계산하기

    에네아곤(enneagon)은 논나곤(nonagon)이라고도 불리는, 변이 아홉 개인 다각형입니다. 정구각형의 면적을 계산할 때는 다음과 같은 공식을 사용합니다.에네아곤의 면적 = ((a2 × 9) / (4 × tan(20°))) ≈ 6.18 × a2여기서 a는 한 변의 길이를 의미합니다. 이 공식은 정구각형을 중심에서 아홉 개의 이등변 삼각형으로 나누면 중심각이 360° ÷ 9 = 40°가 되고, 그 절반인 20°를 이용해 탄젠트 값으로 표현한 것입니다. 이를 간단히 정리하면 약 6.18이라는 상수에 한 변 길이의 제곱을 곱하는 형

  15. C언어로 구현하는 팔각형 면적 계산 프로그램

    팔각형 면적 계산 프로그램 팔각형(octagon)은 여덟 개의 변과 여덟 개의 꼭짓점을 가진 다각형입니다. 특히 모든 변의 길이와 내각의 크기가 같은 정팔각형(regular octagon)이라면 한 변의 길이만 알아도 간단한 공식으로 넓이를 계산할 수 있습니다. 정팔각형 면적 공식 한 변의 길이를 a라 할 때, 정팔각형의 면적은 다음 공식으로 구합니다. 면적 = 2 × (1 + √2) × a² 이 공식은 삼각함수를 이용해 면적 = 2a² ÷ tan(22.5°)로 표현할 수도 있으며, 두 식은 수학적으로 동일한 값을 반환합니다. 코드

  16. 처음 n개의 짝수 자연수의 평균 구하기

    n개의 짝수 자연수의 평균(산술 평균)은 해당 숫자들의 합을 개수로 나눈 값입니다.이를 계산하는 방법은 크게 두 가지가 있습니다.반복문(loop)을 사용하여 n개의 짝수 자연수의 합을 구한 뒤 개수로 나누는 방법수학 공식을 사용하여 평균을 곧바로 계산하는 방법방법 1 – 반복문 사용원하는 개수만큼 반복문을 실행하면서 짝수 자연수의 합을 차례로 더합니다. 그런 다음 그 합을 n으로 나누면 평균을 구할 수 있습니다.예제 코드#include <stdio.h> int main(void) { int n = 5; in

  17. C 언어로 주어진 숫자에 1을 더하는 방법

    주어진 숫자에 1을 더하는 프로그램은 변수의 값을 1만큼 증가시키는 동작을 수행합니다. 이러한 연산은 주로 카운터(counter)를 구현할 때 널리 사용됩니다.숫자를 1 증가시키는 방법에는 크게 두 가지가 있습니다.숫자에 1을 더한 뒤, 그 결과를 다시 변수에 할당하는 방법증감 연산자(increment operator)를 사용하는 방법방법 1 – 재할당 방식이 방식은 변수의 현재 값에 1을 더한 후, 그 결과를 다시 같은 변수에 저장합니다. 가장 직관적이고 이해하기 쉬운 기본적인 방법입니다.예제 코드#include <stdio

  18. C 언어로 원의 넓이를 구하는 프로그램 작성 방법

    원의 넓이란?넓이(면적)는 2차원 공간에서 도형이 차지하는 크기를 나타내는 양입니다. 원의 넓이란 2차원 평면 위에서 원이 덮고 있는 영역 전체를 의미합니다.원의 넓이 계산 공식원의 넓이를 구하려면 반지름(r) 또는 지름(d)(반지름의 2배) 값이 필요합니다. 넓이를 계산하는 공식은 다음과 같습니다.반지름 사용 시: π × r²지름 사용 시: (π × d²) ÷ 4예제 코드 1: 반지름으로 원의 넓이 구하기가장 기본적인 방법으로, 반지름 값을 직접 곱하여 원의 넓이를 계산합니다.#include <stdio.h>int ma

  19. C 언어로 두 개의 정수 더하기 – 초보자용 예제 코드와 실행 결과

    두 정수 더하기 프로그램이란?두 수를 더하는 프로그램은 코드에 지정되거나 사용자로부터 입력받은 두 개의 숫자를 산술적으로 더한 뒤, 그 결과값을 합을 저장하는 별도의 변수에 담아 활용합니다. C 언어에서 가장 기본이 되는 덧셈 연산 예제로, 변수 선언과 초기화, 연산자 사용, printf() 함수를 통한 출력 과정을 한 번에 익힐 수 있습니다.예제 코드#include <stdio.h>int main(void) {    int a = 545;    in

  20. X 또는 Y로 나누어 떨어지는 처음 N개의 자연수의 합 구하기

    X 또는 Y로 나누어 떨어지는 n 이하의 모든 자연수를 더한다는 것은, 조건에 맞는 숫자들을 골라내어 합계를 저장하는 변수에 차례로 누적하는 과정을 의미합니다.X 또는 Y로 나누어 떨어지는 처음 N개의 자연수의 합을 구하는 방법은 크게 두 가지가 있습니다.반복문과 조건문을 사용하는 방법수학 공식을 사용하는 방법방법 1 - 반복문과 조건문 사용하기이 방법은 0부터 n까지 반복문을 실행하면서, 각 숫자가 X 또는 Y로 나누어 떨어지는지 검사합니다. 조건을 만족하는 숫자를 만날 때마다 합계 변수에 값을 더해 누적하는 방식입니다.예제 코드

Total 1443 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:19/73  20-컴퓨터/Page Goto:1 13 14 15 16 17 18 19 20 21 22 23 24 25