P.295
//PointerOperationResult.c
#include <stdio.h>
int main(void)
{
int * ptr1 = 0x0010; // put pointer address to ptr1
double * ptr2 = 0x0010;// put pointer address to ptr2
printf("%p %p \n", ptr1+1, ptr1+2); // increase +4 and +8 , because ptr is int variable
printf("%p %p \n", ptr2+1, ptr2+2);// +8 +16 double
printf("%p %p \n", ptr1 , ptr2); // print out ptr1, ptr2
ptr1++; // increase 4
ptr2++; // increase 8
printf("%p %p \n", ptr1 , ptr2);
retrun 0 ;
}
//PointerBaseArrayAccess.c
#include <stdio.h>
int main(void)
{
int arr[3] = {11, 22, 33};
int * ptr = arr; // >> int * ptr = &arr[0]
printf("%d %d %d \n", *ptr, *(ptr+1), *(ptr+2) );
printf("%d ", *ptr); ptr++;
printf("%d ", *ptr); ptr++;
printf("%d ", *ptr); ptr--;
printf("%d ", *ptr); ptr--;
ptintf("%d ", *ptr); printf("\n");
return 0 ;
}
문제 13-1
//문제 1
#include <stdio.h>
int main (void)
{
int arr[5] = {1, 2, 3, 4, 5};
int *ptr = arr;
for(int i =0; i<5; i++)
{ printf(" %d ", ptr[i] );
arr[i]+=2 // *ptr +=2;
printf(" %d \n", ptr[i] );
}
return 0 ;
}
// 문제2
#include <stdio.h>
int main(void)
{
int arr[5] = {1, 2, 3, 4, 5
int *ptr = &arr[0];
for(int i=0 ; I<5 ; i++)
{
*(ptr+i) += 2;
printf("%d ", arr[i] );000000
}
}