본문 바로가기
728x90
반응형

포인터5

Go to the Hell?~~~ 배열 포인터. 1. 이 번엔 어렵다는 배열과 포인터를 같이 써본 프로그램이다. 알다시피 배열도 주소이고 포인터도 주소이다. 그래서 이 프로그램에서 실험을 해보았다. int array[3][4] = {{15, 23, 45, 56}, {34, 52, 76, 23}, {43, 62, 91, 84}}; 2. int 형 array 라는 이름으로 배열을 선언한 동시에 초기화를 시켰다. 배열은 항상 시작할때 위의 그림처럼 초기화를 시켜야 한다. printf("%d ", array[i][j]); 3. printf 문에서 배열형식으로 array 구문을 넣었다. 그리고 보통 배열이 아닌 다차원 배열로 2차원 배열을 쓴 것이다. 1) array[2][3] = 30; 2) *(*(array+0)+3) = 23; 4. 위 구문.. 2012. 5. 29.
점점 멀어지나봐~~ ㅠㅠ 포인터의 이해를 위한... 1. 위 그림은 포인터를 이용하여 계속 값을 바꾸는 프로그램이다. char *p; 2. 포인터 p라는 변수를 선언하여 만든다. p = &ch; *p = 'B'; 3. ch 변수에 A 라는 값을 넣었다. 위 구문은 p라는 포인터 변수에 ch 라는 주소값을 넣고 *p는 p의 메모리 주소를 따라 들어 가면 거기에는 ch라는 메모리 주소 값이 있다. 그 주소에 B라는 문자를 넣으라는 뜻이므로 거기에 있던 A는 사라지고 B가 들어 가게 된다. printf("%c\n", ch); 4. printf 문으로 ch를 문자로 출력하라는 구문이다. 5. main 파일을 실행 시킨 화면이며 값이 다 다른 것을 볼수 있다. 소스에서 printf 문에는 분명 ch라는 변수를 출력 시키도록 했지만 값이 .. 2012. 5. 21.
알면 알수록 Hell 타는 포인터? ...ㅠㅠ 실수 형 포인터. 1. 위 소스는 실수를 포인터를 사용 하여 메모리에 어떻게 저장 되는 지를 확인해보기 위해 짠 소스이다. float fnum; 아래에 unshgned char *p = (unsigned char *) &fnum; 이 부분이 포인터를 사용한 부분이며 오른쪽이 (unsigned char *) &fnum; 이란 부분이 약간 뭔가 달라 보일 것이다. 이 부분이 형동등성을 위해 왼쪽의 포인터형 과 동등하게 만들어 주기 위해서 캐스팅을 한것이다. 그리고 fnum =32.125; 로 fnum을 초기화 시켜주고 그 아래에 *(p+0) = 0x00; 라는 부분이 나중에 출력 될때 메모리에 저장 되는 주소이다. 2. tst 파일을 실행 시킨화면이다. fnum에서 입력 되었던 값이 메모리 주소를 입력하여 .. 2012. 5. 8.
오류는 무서버~~ ㅠㅠ 포인터 오류 코드. 1. 위 그림의 소스는 다른 타입의 포인터들을 이용해서 어떻게 되는 지를 보기 위해 일부러 짠 소스이다. 보시다시피 문제 없이 컴파일은 됐지만 아래에 창을 보면 C4133이라는 경고 메시지가 뜬 것을 볼수 있는데 이 C4133경고는 포인터앞의 자료 타입이 맞지 않아서 뜬 것이다. 그런데 3번째 경고를 보면 경고 코드가 다른 것을 볼수 있다. C4047 이코드는 포인터가 잘못 되어서 뜬 것인데, 3번째 경고 메시지를 더블 클릭해서 3번째 코드를 보면 역시 잘 못 된 것이 보인다. &가 inum 앞에 붙어 있지 않다. 2. 타입이 다른 포인터 타입들을 위의 그림 처럼 캐스팅을 하여 수정 하고 3번째 코드에서 빠졌던 &도 같이 삽입하여 수정한 코드를 ctrl+F5키를 눌러 실행시켜 보면 D.. 2012. 5. 4.
728x90
반응형