본문 바로가기

C 언어

함수의 호출과 실행 //두정수를 입력받아 평균값을 출력하는 프로그램으로 평균값은 average()함수가 산출한다. #include float average(int n1, int n2); //함수의 원형(proto type) int main() { int num1, num2; float avrg; printf("Please enter an integer : "); scanf("%d", &num1); printf("Please enter an integer : "); scanf("%d", &num2); avrg = average(num1, num2); //average()함수의 호출 printf("The average of %d and %d is %6.3f\n", num1, num2, avrg); return 0; } //두 .. 더보기
함수 C프로그램은 함수들의 집합으로 구성이며, 특정작업을 수행하는 독립된 프로그램이다. 복잡한 프로그램을 여러 개의 독립된 부분으로 나누어 작성함으로써 장점들이 있다. 1. 프로그램 작성의 난이도를 낮출 수 있다. - 당연하다. 2. 하나의 큰 프로그램을 여러사람이 나누어 작업할 수 있다. - 10층짜리 건물 한사람이 지어 올리는 것보다 1층을 10사람이 분담해서 짓기 3. printf()함수처럼 자주 사용되는 코드를 한번 작성하여 필요할 때마다 반복적으로 사용할 수 있다. - 예) #include void hello(); //hello 함수 선언, void hello()을 int main() 밑으로 쓰기 때문에 ;(세미콜론)을 반드시 입력해야한다. 하지만 void hello()을 int main()위에 입력.. 더보기
주소 값의 연산 //주소연산을 보여주는 프로그램의 예 #include int main() { short sNum = 5, *sp = &sNum; float fNum = 2.3f, *fp = &fNum; printf("sp의 값 : %p\n", sp); printf("증가된 sp의 값 : %p\n", ++sp); printf("fp의 값 : %p\n", fp); printf("증가된 fp의 값 : %p\n", ++fp); return 0; } 결과 sp의 값 : 0012FF7C 증가된 sp의 값 : 0012FF7E fp의 값 : 0012FF74 증가된 fp의 값 : 0012FF78 리눅스에서 결과 sp의 값 : 0xbffff84a 증가된 sp의 값 : 0xbffff84c fp의 값 : 0xbffff840 증가된 fp의 값.. 더보기
포인터(3) //short형의 포인터 변수가 int형의 데이터를 접근하는 프로그램 #include int main() { int iNum, *ip; //ip는 int형을 가리키는 포인트 변수 short *sp; //sp는 short형을 가리키는 포인트 변수 iNum = 0x0F5A0B43; //iNum의 초기화 ip = &iNum; //ip의 초기화 printf("iNum : %X ip : %08X \n",iNum, ip); sp = (short *)ip; //sp가 iNum을 가리킨다 printf("sp : %08X, *sp : %X\n", sp, *sp); sp = sp++; ip = ip++; //sp가 iNum의 세 번째 바이트를 가리킨다 printf("sp : %08X, *sp : %X\n", sp, *sp.. 더보기
포인터(2)[IEEE754방식으로 확인] //실수 5.765가 메모리에 저장되있는 주소를 확인하는 예문 #include int main() { float f; unsigned char *cp; f = 5.765; cp = (unsigned char *)&f; printf("%02X %02X %02X %02X\n", *cp, *(cp+1), *(cp+2), *(cp+3)); return 0; } 결과 E1 7A B8 40 위 예문을 IEEE754방식으로 확인하기 위해 2진수로 나타내면 1110 0001 0111 1010 1011 1000 0100 0000이다. 하지만 컴퓨터는 화면과 다르게 1바이트씩 거꾸로 입력을 하기 때문에 (예를 들면 화면에는 1234라고 입력하지만 컴퓨터는 4321로 입력을 해 계산한다.) 거꾸로 나타내서 기계식으로 계산을.. 더보기