1.
세 변수를 아래와 같이 작성하여, 변수의 값과 주소를 출력하는 프로그램을 작성하라.
int iNumber = 25
float fNumber34.5
char ch = 'g'
Answer
![](https://t1.daumcdn.net/cfile/tistory/256E9A47514E6F2B06)
소스코드
#include<stdio.h>
int main() { int iNumber; float fNumber; char ch;
iNumber = 25; fNumber = 34.5; ch = 'g';
printf("iNumber의 값 : %d\n", iNumber); printf("iNumber의 주소 : %08X\n", &iNumber); printf("fNumber의 값 : %f\n", fNumber); printf("fNumber의 주소 : %08X\n", &fNumber); printf("ch 의 값 : %c\n", ch); printf("ch 의 주소 : %08X\n", &ch);
return 0; }
|
2.
위의 세 변수를 가리키는 포인터 변수를 각각 설정하여, 포인터 변수를 이용해서 세 값을 출력하는 프로그램을 작성하라.
Answer
![](https://t1.daumcdn.net/cfile/tistory/02619A4F514E707702)
소스코드
#include<stdio.h>
int main() { int iNumber; float fNumber; char ch; int *ipNumber; float *fpNumber; char *chp;
iNumber = 25; fNumber = 34.5; ch = 'g';
ipNumber = &iNumber; fpNumber = &fNumber; chp = &ch;
printf("*ipNumber = %d\n", *ipNumber); printf("*fpNumber = %f\n", *fpNumber); printf("*chp = %c\n", *chp);
return 0; }
|
2-2.
float 형 변수 fnumberfmf 38.9로 설정한 다음, fnumber의 각 바이트의 내용을 아스키 코드로 출력하라.
//한번 해볼 것 - 문자로 출력 가능하게 할 수 있을 지.
Answer
![](https://t1.daumcdn.net/cfile/tistory/204CAC4C514E71CA16)
위 16진수는 아스키 출력 아래는 문자 출력
소스코드
#include<stdio.h>
int main() { float fNum; unsigned char *cp;
fNum = 38.9f;
cp = (unsigned char*)&fNum;
printf("%02X %02X %02X %02X\n", *(cp + 0), *(cp + 1), *(cp + 2), *(cp + 3)); //아스키코드 printf("%2c %2c %2c %2c\n", *(cp + 0), *(cp + 1), *(cp + 2), *(cp + 3)); //문자출력
return 0; } |
3.
int 형의 변수 inumber의 값을 키보드로부터 읽어서 설정한 다음, 포인터 변수를 이용해서 inumber의 값을 두 배로 만들어서 출력하는 프로그랜을 작성하라.
answer
![](https://t1.daumcdn.net/cfile/tistory/254F9C50514E737E10)
소스코드
#include<stdio.h>
int main() { int iNumber; int *ipNumber;
printf("숫자를 적으세요~! "); scanf("%d", &iNumber);
ipNumber = &iNumber;
printf("iNumber = %d\n", *ipNumber * 2);
return 0; }
|
4.
포인터 변수의 저장 공간의 크기를 출력하는 프로그램을 작성하라.
Answer
![](https://t1.daumcdn.net/cfile/tistory/145D224C514E743D0E)
ipNum = int
cpNum = char
spNum = short
fpNum = float
dpNum = double
포인터의 크기는 모두 같다.
소스코드
#include<stdio.h>
int main() { int iNum; int *ipNum; char cNum; char *cpNum; short sNum; short *spNum; float fNum; float *fpNum; double dNum; double *dpNum;
ipNum = &iNum; cpNum = &cNum; spNum = &sNum; fpNum = &fNum; dpNum = &dNum;
printf("size ipNum = %d\n", sizeof(ipNum)); printf("size cpNum = %d\n", sizeof(cpNum)); printf("size spNum = %d\n", sizeof(spNum)); printf("size fpNum = %d\n", sizeof(fpNum)); printf("size dpNum = %d\n", sizeof(dpNum));
return 0; } |
5.
주소값을 지정하는 변수를 ________ 변수라고 한다.
답 : 포인터
6.
포인터 변수가 아무 것도 가리키지 않고 있는 것을 설정할 때는 _______ 을 넣는다.
답 : 주소값