본문 바로가기

TIPS/C언어

[TIPS] 8th 20160728_(1) 여덟번째 강좌입니다(1) 1. 함수의 포인터 다음과 같은 함수가 있다고 하자. void Test(int a){...} 지금까지는 메인함수에서 Test(3); 과 같은 방식으로 호출하였다. 하지만 함수 또한 변수처럼 포인터를 통해서 호출할 수 있다. 먼저 함수의 타입에 대해서 살펴보자.함수의 타입은 함수의 이름을 뺀 나머지라고 생각하면 된다. 위의 Test함수의 타입은 함수이름을 뺀 나머지, 즉 void (int)이다. (매개변수 명은 써주지 않아도 된다.) Test함수의 포인터는 다음과 같이 선언할 수 있다. void (*fp)(int); 매개변수 갯수와 타입만 맞으면 된다. 그렇다면 왜 포인터를 쓸까? -> 함수는 함수이름을 사용시에 기계어로 변환되며 고정되어버린다. 하지만 포인터를 사용한다면 함수의 .. 더보기
[TIPS] 6th 20160721_(1) 6 여섯번째 강좌 정리입니다. 1. 구조체 - 서로 다른 데이터 형을 하나의 데이터로 군집화하여 사용할 수 있도록 하는 사용자 정의 데이터 형을 구조체(structure)라 한다. 중복해서 자주 사용하는 명령어는 함수로 구조하였다. 이처럼 중복해서 자주 사용하는 변수는 (즉, 데이터) 구조체로 구조한다. 배열과 달리 구조체는 서로 다른 데이터끼리 그룹지을 수 있다. 대표적인 예로 성적처리시 학생 개개인별로 성적을 그룹지어 관리하는 것이 있다. - 구조체의 정의 struct 키워드와 사용할 구조체 명을 명시하여 구조체를 정의한다. 구조체 내부를 구성하는 데이터는 미리 정의된 데이터 형으로 선언해야 한다. 구조체 내부의 각 데이터는 분리자(;)로 구분해야 한다. struct 구조체명{ 데이터 형 변수명1; .. 더보기
[TIPS] 4th 20160714 4번째 강좌 정리입니다. 1. 표준입력함수scanf(cons char *format [,argument]…); 예제 1)int data =0;scanf(“%d”,&data); 예제 2)char name[100];scanf(“%s”, name);printf(“당신의 이름은 %s입니다.”, name); // 이 부분은 포인터와 배열을 배운 후면 이해가 갈 것이다. scanf도 printf와 같이 %를 사용한다. 변수 앞에 &가 들어가는건 주소를 뜻하는 것인데, 이 부분은 뒤의 포인터를 배우면서 자세히 다룬다. 입력형식과 입력받을 변수의 형식이 같아야한다. 예시 1에서는 data가 int이기 때문에 %d를 사용하였고, 예시 2에서는 name[100]이 배열 (연결되면 문자열)이기 때문에 %s를 사용하였다. 또.. 더보기