본문 바로가기

c언어30

[C언어] 제 16 강 : 배열과 포인터, 포인터 연산 새벽인대 잠이 안와서 포스팅이나 하렵니다~~ㅋㅋㅋㅋ 포스팅 하다보면 잠이 오겠죠^-^ 저번 포인터 그리고 포인터 배열 내용에 계속 되는 부분 입니다~ * : 메모리 참조 & : 주소 값 반환 요 2가지 연산자는 저번 시간에 배웠죠~? 복습합시다~! 포인터를 피연산자로 하는 곱셈과 나눗셈은 불가능하지만 덧셈과 뺄셈은 가능합니다. 포인터에서의 덧셈과 뺄셈은 일반적인 산술연산과는 조금 다른 의미를 가지고 있습니다. int number = 1; int* ptr = &number; 여기서 ptr의 값을 10진수로 출력 시켜보고 그리고 ptr++ 을 통해서 값을 증가시켜보고 출력시켜보세요. 결과는 어떻게 나올까요? 처음의 값보다 4가 증가됩니다. 즉 ptr에 1을 더하면 1이 증가해야되지만 4가 증가한다는 얘기입니.. 2012. 1. 22.
[C언어] 제 15 강 : 포인터의 포인터 그리고 포인터 배열 포인터 변수도 변수의 한 형태이기 때문에 선언 시 메모리 영역에 4바이트의 메모리 공간 할당이 이뤄지기 때문에 당연히 포인터 변수 자체애 대한 주소 값도 존재를 하겠죠~? int number = 1; int* ptr = &number; printf("ptr의 저장 값은? %#x", ptr); printf("ptr의 주소 값은? %#x", &ptr); 위의 소스 코드를 출력해보세요~ 분명히 ptr의 저장 값과 주소 값은 다릅니다. ptr의 저장 값은 number변수의 주소 값이고 ptr의 주소 값은 말 그대로 포인트 변수 ptr의 주소 값이겠지요? 그렇습니다. 그리고 이 값을 다시 포인터 형 변수에 저장 할 수 있습니다. 즉, 포인터의 포인터(주소값)을 저장할 수 있는 것이죠^-^!! int number .. 2012. 1. 19.
[C언어] 제 14 강 : 포인터의 기본적인 개념 드디어 C언어의 '포인터'에 입문할 차례입니다. 사실 손으로 쓰면 이해하기 쉽도록 그림이라도 그리기 편할텐대 이놈의 귀차니즘이 포토샵을 켜질 않내요...... 나름 개인적인 복습이니까~ 라는 사고방식이 합리화를 시키기는 하지만 뭔가 걸리적 거리기는 합니다. 포인터란 무엇일까? 결론적으로 포인터는 주소 값을 담고 있는 변수이다. 그렇다면 왜 굳이 포인터라는 어려운 개념을 알아야 할까? 간단합니다. 좀 더 프로그램에 깊숙히 접근해서 보다 더 자유롭게 프로그래밍을 하기 위해서 입니다. 일반적으로 메모리는 1바이트 블록 단위로 아주 자자자자잘하게 나뉘어 있습니다. 각각의 바이트마다 고유한 주소값을 가지고 있습니다. 즉 0x11번지라고 하면 1바이트, 8개의 비트를 가리키고 있습니다. 그럼이제 실제 프로그래밍 코.. 2012. 1. 19.
[C언어] 제 13 강 : 배열 올해 구정은 빠르네요.... 보통 2월에 있지 않았나요~? 엊그제 계좌에 365일이 입금되었는대 벌써 18일을 써버렸습니다...ㅠㅠㅠ 잔액을 좀 더 알차게 사용해야겠습니다.. 오늘은 C언어 배열에 대하여 공부해보도록 하겠습니다. 우리가 변수를 지정하는 것 만큼이나 자주 사용하고 더 나아가 포인터의 개념도 맛볼 수 있기 때문에 중요합니다^^ 배열은 변수의 선언에 있어서 상당히 편리한 역할을 해줍니다. 예를들어 전교생의 성적을 저장해야되는 변수를 선언한다고 생각해봅시다. 천명이고 만명이고 학생 수 만큼의 변수가 필요하겠죠..? 그럼 그 많은 변수를 한땀한땀 선언해주어야 됩니다. 배열은 이러한 부분을 완벽하게 해결해 줍니다. int a = 1, b = 2, c = 3, d = 4; 이러한 변수의 선언은 int.. 2012. 1. 19.