분류 전체보기 532

[C언어]포인터 pointer <기본>

1. 데이터를 전달하는 방식 1) 값 전달 방식 : 함수의 일반적인 값 전달 방식. 함수의 안정성과 독립성을 제공 2) 주소 전달 방식 : ⓐ 함수를 호출한 후 실 매개 변수의 값이 변경되도록 하기위한 경우 ⓑ 함수의 결과 값을 두 개 이상 되돌리기 위한 경우 ⓒ 함수의 매개 변수가 배열인 경우 2. 포인터 1) 주소값, 어드레스 라고도 불린다. > 메모리상의 특정 위치 값을 의미한다. 2) 포인터 연산자 "&" > 변수가 할당 되 있는 주소값이 출력된다. ex ) #include void main() { int a; a = 10; printf("a = %2d\ta의 주소 = %x\n",a,&a); } 결과 : a = 10 a의 주소 = 12ff7c (%x는 16진수를 출력할때 사용하는 것) 3) 포인터..

[C언어] 선행처리자 Preprocessor

1. 선행처리자의 역활 1) 단순한 문자열의 치환 2) 다른 파일의 내용을 첨가 3) 컴파일러에게 컴파일 조건 부여 4) 컴파일러에게 정보를 제공 2. 매크로 상수 1) 문법 #define 매크로상수 치환할 문자열 2) 주의점 ⓐ 선행처리자 명령 뒤엔 ; 세미콜론을 붙여주지 않는다. ⓑ 두 행에 걸쳐서 선행처리자가 명령을 기술 할 때에는 행의 끝에 '\'가 있어야 한다. 3. 매크로 함수 1) 문법 #define 매크로함수 함수내용 2) 주의점 단순 치환 때문에 발생할 수 있는 부작용에 주의 > 괄호를 잘 이용해준다. 4. #include 1) #include 표준디렉토리에서 해당 해더파일을 찾는다. 2) #include"headername" 현재디렉토리에서 해당 해더파일을 찾는다. 해더파일 > 확장자 ..

[C언어] 재귀 호출 함수 Recursion 팩토리얼 구연(재귀 함수이용)

1. 재귀 함수의 장단점 1) 재귀 함수는 불려진 만큼 메모리를 할당받는다(소비한다). 2) 재귀 함수는 함수가 종료되지 않은채 계속 함수를 호출한다. > 함수 내에 선포된 자동 변수들이 램에 새롭게 할당을 받는다. 3) 재귀 함수는 메모리를 많이 소비하여 처리속도가 느리다. 2. 재귀 함수의 예시 펙토리얼(!) 팩토리얼 n! = n*(n-1)! #include // Claculate factorial function long factorial(int x) { if ( x == 1 ) return 1; else return x*factorial(x-1); } int main() { int n; int c = 1; printf(" input number : "); c = scanf("%d",&n); whi..

[C언어소스]구조체.배열 이용. 성적 관리

#include #define stu_MAX 2 //학생수를 필요에 따라 변경해주세요. #define sub_MAX 2 //과목수를 필요에 따라 변경해주세요. struct grade { int hacban[8]; char name[20]; int sub[3]; int tot; float avg; }; main() { int i, j; int sum; float avg; struct grade str[stu_MAX]; for ( i = 0 ; i < stu_MAX ; i++ ) { sum = 0; printf("학번을 입력해주세요 : "); scanf("%s",&str[i].hacban); printf("이름을 입력해주세요 : "); scanf("%s",&str[i].name); for ( j = 0 ; ..

[C언어] 구조체 structure 2번째

1. 구조체의 변수의 초기화 구조체의 변수를 초기화 하려면 구조체 변수를 선언할 때 각 멤버에 대응하는 초기값을 { }안에 나열한다. ex) struct time { int hour; int min; int sec; } ; struct time first = { 11, 3, 10 } > hour = 11, min = 3, sec = 10 이 들어간다. 2. 구조체 간의 복사 동일한 구조체 형으로 선언된 구조체 변수는 구조체 단위로 모든 멤버들의 값을 복사할 수 있다. 구조체 변수 단위로 대입연산자('=')를 사용하면 멤버들이 1:1로 대응되어 값들이 한꺼번에 옮겨진다. ex) struct time { int hour; int min; int sec; } ; struct time first = {11,3,..

[C언어] 구조체 structure 레코드 recorde

1. 구조체란? 서로다른 형의 변수들을 하나의 이름으로 묶어 놓은 것! 즉, 변수의 집합체이다. 구조체의 다른 이름은 레코드 이다. 복잡한 자료를 다루는 것을 편리하게 해주는 장점이 있다. 2. 문법 struct name1{ int x; } name2 ; 1) struct 명령어 : 구조체의 시작을 의미한다. 2) name1 : 구조체의 이름을 나타낸다. 'structure tag' 라고 한다. 3) int x; : 앞에서도 흔히 사용하였던 변수 선언이다. 구조체의 변수들을 선언해준다. : 구조체에 속하는 변수들을 '멤버(members)'라고 한다. 4) name2 : 구조체의 변수를 선언하는 것이다. 구조체를 다룰 때 사용할 변수를 선언해주는 것이다. ※name1은 단순히 구조체의 이름일 뿐 없어도 되..

[C언어] 함수 기초

#include int power(int m, int n); main() { int i, j; int answer; scanf("%d",&i); scanf("%d",&j); answer = power(i,j); printf("Answer is %d\n",answer); } int power(int m, int n) { for ( ; n > 0 ; n-- ) { m *= m; } return m; } --------------------------------------------------------------------------------- 1. 함수의 선언 함수의 선언 형태는 다음의 형식을 따른다. 리턴값의 형식 함수이름(매개변수) { 선언문 문장들 } 리턴값의 형식은 함수를 끝내고선 메인함수로 남겨..