C 구조체 주요 개념 어떤 프로그래밍 문제를 나타내는 데 필요한 정보는, 하나의 수 또는 수들의 리스트보다는 복잡하다. 프로그램은 여러 가지 속성을 지닌 실체나 실체들의 집합을 다룰 수 있다. 예를 들어 이름, 주소, 전화번호, 기타 정보로 한 명의 고객을 표현할 수 있다.이러한 경우에 C 구조체를 이용하여 이 모든 정보를 하나의 단위로 묶을 수 있다. 이것은 프로그램을 구성하는 데 매우 유용하다.구조체를 사용하려면, 개별적으로 흩어진 여러 변수들의 집합으로 정보를 저장하지 않고, 관련된 모든 정보를 한 장소에 저장할 수 있다. 구조체를 설계할 때 구조체와 함께 사용할 함수들의 패키지를 함께 개발하는 것이 일반적으로 유용하다. 예를 들어 구조체의 내용을 출력하고 싶을 때마다 한 무더기의 printf()문..
문자열 함수 문제C 라이브러리는 몇 개의 문자열 처리 함수들을 제공한다.ANSI C는 그 함수들의 프로토타입들을 제공하기 위해 string.h 헤더 파일을 사용한다. strlen()기능 : 문자열의 길이를 구한다.문제 17 : strlen()함수를 사용하여 긴 문자열을 단축시킨다./* 문자열을 단축시키는 함수 테스트 */#include #include /* 문자열 함수 프로토타입들이 들어 있다 */void fit(char *, unsigned int);int main(void){ char mesg[] = "Things should be as simple as possible," " but not simpler."; puts(mesg); fit(mesg,38); puts..
포인터 변수 개념 메모리 주소포인터를 이해하는 첫번째 걸음은 기계 수준에서 포인터가 무엇을 의미하는지를 시각화하는 것이다. 대부분의 최신 컴퓨터들에서 주 메모리는 바이트byte 단위, 즉 8비트짜리 정보를 저장할 수 있는 단위로 나뉜다. 실행 가능한 C 프로그램은 코드(프로그램의 기계어 번역본)와 자료 (프로그램의 변수들) 두 가지로 구성된다. 프로그램의 모든 변수들은 메모리에서 한 개 이상의 바이트를 차지한다.각 바이트에는 고유한 주소address를 가지므로 모든 바이트들은 서로 이 주소를 통해 메모리 내에서 구분한다. 만약 메모리에 n 개의 바이트가 있다면 주소를 마치 0에서 n - 1까지의 폐구간 사이의 숫자라고 생각할 수 있다. 첫번째 바이트의 주소를 변수의 주소라고 부른다. 다음 그림..
배열배열을 만들고 초기화 하는 방법배열 선언동일한 하나의 데이터형을 가진 연속된 원소들로 구성된다.배열을 사용하려면 선언하여 컴파일러에게 알려야 한다.선언 내용 : 그 배열이 가지는 원소의 개수(배열의 길이), 원소들의 데이터형float candy[365]; // 365개의 float형 값을 가지는 배열char code[12]; // 12개의 char형 값을 가지는 배열int states[50]; // 50개의 int형 값을 가지는 배열배열 안에 있는 각 원소들은 인덱스라고 부르는 첨자 번호를 사용함으로써 개별적으로 접근할 수 있다.candy[0] : candy 배열의 첫 번째 원소candy[364] : candy 배열의 마지막 원소초기화배열은 콤마로 분리된 값들의 리스트를 중..
인수 전달 방법 방법1. 값에 의한 전달 함수를 호출할 때 단순히 값을 복사해서 전달하는 함수 호출을 값에 의한 전달(Call-by-value)이라고 한다.인자 전달의 기본방식은 값의 '복사'하는 것이다.값을 복사해서 인수로 전달하면 호출하는 함수의 값은 바뀌지 않는다.#include void add(int a); // 함수 선언 int main(void){ int num = 10; add(num); // 함수 호출 printf("num : %d\n", num); return 0;} void add(int a) // 함수 정의{ a = a + 5;}/* 실행 결과 */// num : 10값을 복사해서 인수로 전달하면 함수가 반환된 이후에도 호출한 함수에 있..