포인터

· Language/C
(1) 인수 전달 방법 함수를 호출할 때에는 함수에 필요한 데이터를 인수(argument)로 전달해 줄 수 있다. 인수를 전달하는 방법은 크게 두 가지가 있다. 값에 의한 전달 (call by balue) 참조에 의한 전달 (call by reference) (2) 값에 의한 전달 (call by value) 인수로 전달하는 값을 함수 내의 매개 변수에 복사하는 방식이다. 이러한 방식은 원본 변수와 복사된 값인 매개 변수는 별개의 변수이다. 따라서 매개 변수의 값 변경은 원본 변수에 영향을 미치지 않는다. #include void local(int); int main(void) { int var = 10; printf("var의 초기값은 %d\n", var); local(var); printf("loca..
· Language/C
(1) 포인터 연산 포인터는 값을 증가시키거나 감소시키는 등의 제한된 연산만이 가능하다. C언어 포인터 연산에는 다음과 같은 규칙이 있다. 포인터끼리 덧셈, 곱셈, 나눗셈은 의미 없음 포인터끼리 뺄셈은 두 포인터 사이의 상대적 거리 포인터에 정수의 덧/뺄셈은 가능하지만, 실수와의 연산은 허용치 않음 포인터끼리 대입, 비교 가능 포인터 연산의 증가값을 비교하는 예제이다. char* ptr_char = 0; int* ptr_int = NULL; double* ptr_double = 0x00; printf("ptr_char가 가리키는 주소값은 %#x입니다.\n", ptr_char); printf("ptr_int가 가리키는 주소값은 %#x입니다.\n", ptr_int); printf("ptr_double가 가리..
· Language/C
(1) 구조체 배열 선언 사용자 정의 타입인 구조체도 배열의 한 요소가 될 수 있다. struct student highschool[3] = { {"김철수", 1, 7}, {"박짱구", 3, 2}, {"맹구글", 2, 1} }; puts("전학생들의 이름은 다음과 같습니다."); printf("%s, %s, %s", highschool[0].name, highschool[1].name, highschool[2].name); 위와 같이 멤버 연산자 .을 사용하여 각 배열 요소의 멤버 변수에 접근할 수 있다. 이는 이차원 배열에도 동일하게 사용 가능하다. (2) 구조체를 가리키는 포인터 // 문법 struct 구조체이름* 구조체포인터이름; // 예시 struct student* ptr_student; 배열의..
개발 박살내기
'포인터' 태그의 글 목록