C/perpect C
11장 연습문제 포인터 기초
옥식
2022. 1. 8. 14:41
01. int형 변수 data에 100을 저장하고 data의 저장값과 주소 출력
#include <stdio.h>
int main(void)
{
int data = 100;
int* p = &data;
printf("%d %p", *p, p);
return 0;
}
02. 배열 a와 포인터 p에서 포인터 p를 사용해 배열 원소 모두를 출력
#include <stdio.h>
int main(void)
{
int a[5] = { 1, 2, 3, 4, 5 };
int* p;
p = &a[2];
for (int i = -2; i <= 2; i++)
printf("%d ", *(p + i));
return 0;
}
03. ..? 첨자가 뭐야..? 위첨자 아래첨자 밖에 모르는디...
04. int형 변수에 short*ps를 선언해 앞 2바이트에 0x000f를 저장해 출력
#include <stdio.h>
int main(void)
{
int value = 0x000000ff;
int* pi = &value;
printf("%d\n", *pi);
short* ps;
ps = (short*)& value;
*(ps + 1) = 0x000f;
printf("%d ", *ps);
printf("%d", *(ps + 1));
return 0;
}
05.2차원 배열 을 2차원 배열 포인터 p를 활용해 배열 원소 출력
#include <stdio.h>
int main(void)
{
int arr[3][4] = { 11, 22, 33, 44, 55, 66, 77, 88, 11, 66, 77, 44 };
int(*p)[4] = arr;//*p가 아니라 이케 해야 함 2차원 배열
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
printf("arry[%d][%d] = %d", i, j, *(*(p + i) + j));
}
printf("\n");
}
return 0;
}
06.int *p[3] 활용
#include <stdio.h>
int main(void)
{
int* p[3];
int a = 1, b = 2, c = 3;
p[0] = &a;
p[1] = &b;
printf("%d", *p [1]);
return 0;
}
07.
08.