목록프로그래밍 언어 (80)
나의 IT일지
포인터는 변수여서 배열의 요소로 사용할 수 있고, 배열은 저장공간이기에 포인터에 저장할 수 있다. 즉, 포인터를 요소로하여 만든 배열을 포인터 배열, 배열의 주소를 저장하는 포인터를 배열 포인터라고 한다. 이 둘의 이름은 비슷하지만, 사용하는 방법은 다르다. 그래서 우리는 포인터 배열과 배열 포인터에 대해서 알아야 한다. 포인터 배열 우선 포인터 배열에 대해서 알아보자. 포인터 배열이란 포인터 변수들를 묶어놓은 묶음으로, 처리할 데이터의 주소를 모아 데이터를 쉽게 처리하기 위해서 사용이 된다. 포인터형 * 포인터배열명[요소개수] 위의 구조는 포인터 배열의 선언 구조로, 포인터에 저장할 주소를 가진 변수의 자료형을 포인터형칸에 적으며, 배열의 이름인 배열명, 배열에 몇 개의 포인터를 만들 것인지의 요소 개..
포인터란 변수의 주소를 저장하는 공간으로, 변수를 사용할 때 변수의 이름이 아닌 주소로 접근하기 위해 사용한다. 포인터의 기본 C언어는 컴퓨터의 메모리 주소를 이용해 메모리 안에 기억되어 있는 값을 제어할 수 있는 시스템 프로그래밍이 가능한 언어이다. 즉, 컴퓨터안의 메모리 주소에 접근이 가능하며, 그 안의 값을 my-it-diary.tistory.com 생성방법 주소저장 변수값 접근 포인터형 * 포인터명; ex) int *ptr; 포인터=&변수명; ex) ptr = ar; * 포인터명; ex) * ptr; 이때, 생성방법에서 포인터형은 생성할 포인터의 자료형이 아닌, 포인터에 저장할 변수의 자료형을 적는다. 포인터에 저장되어 있는 주소 값도 데이터이며, 데이터를 저장하는 공간은 변수라고 했다. 즉, 주..
함수란 나열된 명령의 묶음으로, 함수의 식을 정하는 구현부와 함수를 호출하는 호출부로 나뉜다. 구현부에는 함수 값의 자료형을 나타내는 반환형, 호출부에 함수명과 값을 전달하는 경우, 전달받는 값을 저장하기 위한 변수인 매개변수, 함수의 실행이 마무리되고 나온 값을 함수 값으로 반환하는 return문이 있다. 구현부 호출부 반환형 함수명(매개변수1, 매개변수2){ 명령1 명령2 ... return 리턴값;} 함수명(값1,값2); 함수는 main함수 밖에서 정의 되며, main함수의 명령에 호출부를 사용하면, 해당 함수를 실행하도록 되어 있다. 그렇다면, 두 변수의 값을 서로 변경하는 함수를 만들어서 main함수에서 호출하면, 두 변수의 값을 서로 변경시킬 수 있다. #include void swap(int..
포인터란 변수의 주소를 저장하는 공간 변수로, 변수를 사용할 때 변수의 주소로 접근하기 위해서 사용한다. 즉 , 포인터는 변수이기에, 연산이 가능하며 연산의 공식은 "저장중인 주소값+증감*저장한 변수의 자료형 크기"이다. 이는 배열의 요소의주소를 찾을 때 유용하다. #include void main() { int arr[3] = { 1,2,3 }; printf("배열주소:%p\n", &arr); printf("배열명:%p\n", arr); printf("첫번째 주소:%p\n", &arr[0]); printf("두번째 주소:%p\n", & arr[1]); printf("세번째 주소:%p\n", & arr[2]); } 위의 코드를 보면, 배열주소와 배열명과 첫번째 요소의 주소가 같은 것을 확인 할 수 있다...
포인터란 변수의 주소를 저장하는 공간이다. 즉, 포인터는 변수의 주소를 저장하는 것 뿐이지, 저장하는 값이 변할 수 있는 변수라는 것이다. 그래서 포인터도 연산이 가능하다. 포인터 연산 주소는 정수같아 보이지만 자료형에 대한 정보를 가지고 있는 특별한 값이기 때문에, 자유롭게 할 수 없고 정해진 연산만 가능하다. 포인터의 연산은 더하거나 빼기만 가능하며, 두 개의 포인터를 더할 수 없다. 즉, 곱셈,나눗셈은 불가능 하며, 서로 다른 포인터를 더할 수는 없다. (포인터명을 ptr로 한다.) 연산 가능 연산 불가능 ptr = ptr + 1 ptr = ptr + 2 ptr++ ++ptr ptr-- --ptr ptr = ptr*2 ptr = ptr/2 ptr = ptr1+ptr2 #include void mai..
C언어는 컴퓨터의 메모리 주소를 이용해 메모리 안에 기억되어 있는 값을 제어할 수 있는 시스템 프로그래밍이 가능한 언어이다. 즉, 컴퓨터안의 메모리 주소에 접근이 가능하며, 그 안의 값을 제어할 수 있다. 게다가 같은 변수명을 사용하더라도 함수나 실행문이 다르면, 변수의 주소가 다르기 때문에, 서로 다른 변수가 된다. 그래서 함수에서 다른 함수의 변수를 사용하기 위한 방법으로 주소를 사용한다. 포인터 포인터란 변수의 주소를 저장하는 공간으로, 변수를 사용할 때 변수의 이름이 아닌 주소로 접근하기 위해 사용한다. 포인터형 * 포인터변수명; 위의 구조는 포인터를 선언하는 구조식으로, 포인터 변수에 변수의 주소를 저장할 때 사용한다. 이때 포인터형은 포인터 변수를 통해 변수에 값을 저장할 때, 포인터 변수가 ..