본문 바로가기

Programming 언어/C언어

(3)
포인터 C언어의 꽃 포인터에 대해 알아보겠습니다! 포인터 포인터 변수는 다른 변수의 주소를 저장하는 변수 주소 저장 위해 주소 크기만큼 메모리 사용 포인터 변수는 다른 변수 가리키는 변수 즉 자신이 사용하고 싶은 메모리의 주소를 저장하고 있는 메모리 포인터 *이거로 선언 ex) int *abc; -->이때 int 부분은 포인터가 가리키는 변수의 데이터 형이어야 함 근데 포인터 변수는 자료형 선언하지 않아도 무조건 크기가 4바이트로 정해짐 즉 int는 abc 변수의 주소에 저장될 값의 자료형 변수의 주소는 &사용하여 구할 수 있음(&연산자로 구한 주소를 포인터 변수에 대입할 때 형이 일치하는 경우에만 대입해야 함) short birthday; short *ptr; ptr=&birthday 변수의 포인터 형에 co..
함수의 활용 값에 의한 전달 함수를 호출할 때 넘겨주는 인자의 값을 함수 정의에 있는 매개변수로 복사해서 전달하는 방식 포인터에 의한 전달 함수의 처리 결과를 인자로 받아올 수 있음 void GetResult(int x,int y,int *sum,int *product{ *sum=x+y; **product=xy; 함수는 return 1개 근데 여러 개 하고 싶을 때 포인터 사용 배열의 전달 배열은 값에 의한 전달 대신 포인터에 대한 전달 방법으로 전달 함수의 매개변수는 배열의 원소에 대한 포인터 형으로 선언함 함수의 인자로 배열을 전달할 때는 포인터를 받아오지만 함수 안에서는 일반 배열처럼 사용하면 된다. void PrintArray(int *arr) →이렇게 매개변수는 포인터형 { int i; for(i=0;i배열..
문자열 입력 함수 c언어를 공부할 때 사용하기 헷갈렸던 문자열 입력 함수에 대해 다루어 보도록 하겠습니다~ getchar 함수 키보드로부터 문자 하나를 입력받는 표준 입력 함수(문자 한 개 입력받더라도 enter 키 눌러야 함) getchar 함수는 int 형식으로 데이터 반환 근데 char형으로 받아도 괜찮음(원형이 int getchar(void);) 만약 getchar을 두 번 사용하면 두 번째 getchar 함수는 enter의 키값을 받게 되어 아무것도 출력 x 줄 바꿈만 일어남 ->해결 방법 : getchar()에 한 번 더 getchar() 사용 근데 위 해결 방법은 별로!! 결국 근본적인 원인은 다른 문자들이 입력 버퍼에 남아서 생기는 문제임 즉 입력 버퍼를 초기 상태로 비워서 남아 있는 문자들을 모두 제거 —..