프로그래밍(25)
-
201303/변수의 값과 주소. 포인터의 개념. littleendian
◈ 변수의 값과 주소 변수에는 항상 주소 값이 존재한다. 그 주소 값을 알아 보기 위해 다음과 같은 소스를 이용한다. &x로 변수 x가 할당 받은 변수의 메모리 주소를 받아 오게 된다. 형식지정자 %p로 주소를 출력하게 되는 것이다. 다음과 같은 결과 창으로 확인해보자. 변수 x에는 25가 들어가 있고 그 25가 들어 있는 변수 x의 주소는 0xbffff9d8이 되는 것이다.◈ 포인터의 개념 포인터변수는 메모리의 주소를 값으로 가지는 변수로 프로그램에서 메모리에 직접 접근할 때 사용한다. 한마디로 주소를 저장하기 위한 자료형이라고 한다.포인터 변수는 타입에 관계없이 주소저장을 위해 4byte를 사용한다. 포인터 변수 4byte는 Bus의 크기에 의해 좌우된다. Bus의 크기가 8byte가 되면 포인터 변..
2013.04.03 -
201303/ getchar()와 getch()
◈ getchar()와 getch()getchar()는 버퍼를 사용하고 있기 때문에 엔터를 치기 전까지 계속 입력을 받을 수 있다. 겉으로 보면 한글자 한글자를 처리하는 듯 보여지만 실제로는 버퍼를 사용해서 엔터키 이전의 문자를 한번에 처리해주는 함수이다. 문자열의 출력이 가능하지만 %c로 출력 할 경우 엔터를 치면 맨 첫번째 문자만 출력된다.그에 반해 getch()는 버퍼를 사용하지 않기 때문에 키보드로부터 문자 하나를 읽어들일 때까지 block상태를 유지한다. 키가 입력되면 곧바로 각 문자를 반환한다. 엔터키도 하나의 문자로 간주하여 엔터키만 쳐도 입력이 된다. getch()는 윈도우만에서 사용되는 함수라 리눅스로 프로그램을 짤 때는 적용되지 않는다. 위 화면은 예제 p3-23을 리눅스 vi편집기를 ..
2013.04.03 -
201303/for문
◈ for문보통 반복횟수가 사전에 정해진 경우에 많이 사용되는 반복문이다. 구문형식은 다음과 같다.for(초기식; 조건식; 증감식){명령문;}초기식과 증감식에는 (,)콤마를 써서 식을 여러 개 쓸 수 있다. ex) i = 1, j = 0;초기식과 증감식에는 아무것도 쓰지 않아도 된다. 하지만 for문 안에는 초기식과 증감식이 생략 되더라도 세미콜론(;)이 반드시 2개가 들어야 한다. ex) (; 조건식 ;) for(i = 1; i
2013.04.03 -
201303/while문. 심볼테이블. gerch()
◈ while문while문의 실행 조건에 따라 변수초기화가 되어 있지 않으면, 실행 할 때 임의값을 얻게 된다. 다음 소스를 살펴보자. 키보드로부터 0을 입력 받을 때까지 정수를 읽고 그 합을 구하는 프로그램이다. #include int main() { int number; long sum = 0; while (number != 0) { sum = sum + number; number = number + 1; printf("Please enter an integer : "); scanf("%d",&number); } printf("The sum of number is %ld.\n", sum); } 이 소스는 정상적으로 실행은 되지만, 원하는 값을 얻지 못한다. 디버그를 통해 알아..
2013.04.03 -
201303/반복문
◈ 반복문같은 명령문을 여러 번 반복해서 수행해야 할 경우 사용된다. 반복문은 while문, for문, do-while문이 있다.◦ while문while문의 실행조건은 다음과 같다.① 변수가 초기화 되어 있어야 한다. 초기화가 안된 변수는 임의값을 가지게 되므로 정상적인 결과를 얻을 수 없다.② 종료값이 존재해야 한다.③ 종료값이 존재한다면 종료조건 또한 정해줘야 한다.while문은 반복문이기 때문에, 종료값과 종료조건이 없으면 계속해서 loop가 돌게 된다.아래의 소스를 통해 실행조건을 알아보도록 하자.#include int main(){ int num() num = 0; //변수의 초기화 while (num
2013.04.03 -
201303/if문과 switch문. 문자입출력함수[getchar(), putchar()]
◈ if문과 switch문아래의 소스는 시험 점수를 입력 받아 다중if문을 이용하여 학점을 출력하는 소스이다. A ~ C까지의 학점만 표시되고 나머지는 F값을 100초과의 값은 "잘못된 점수입니다"라는 메시지가 출력되게 한다.#include int main(){ int iNum; printf("점수를 입력하세요: "); scanf("%d", &iNum); if((100 >= iNum) && (90 iNum) && (80 iNum) && (70 iNum) && (0 < iNum)) { printf("F\n"); } else if(100 < iNum) { printf("잘못된 점수입니다.\n"); } return 0; 다음은 switch문을 이용하여 위와 같은 동일한 출력을 하게 하는 프로그램 소스이다. i..
2013.04.03