25. 배열과 포인터(1)
문) 다음 C프로그램의 출력값은?
#include<stdio.h>
int main(void){
int i;
int a[] = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100};
int *ptr = a + 3;
for( i=0; i<5; ++i ){
printf("%d", *(ptr+i)-3);
}
}
26. 배열과 포인터(2)
* 배열과 포인터의 관계
int a[5];
int *b = a;
a[2] = 10;
b[2] = 20;
a의 번지값 100
a[0] | a[1] | a[2] | a[3] | a[4] |
a[2] : 10 -> b[2] : 20 |
b = 100
문) 다음 C프로그램의 출력 값은?
#include<stdio.h>
int main(void){
int a[] = {1,2,4,8};
int *p = a;
p[1] = 3;
a[1] = 4;
p[2] = 5;
printf("%d %d\n", a[1]+p[1], a[2]+p[2]);
return 0;
}
cf) 문제변형
#include<stdio.h>
int main(void){
int a[] = {1,2,4,8};
int *p = a+1; //변형된 부분
p[1] = 3;
a[1] = 4;
p[2] = 5;
printf("%d %d\n", a[1]+p[1], a[2]+p[2]);
return 0;
}
27. 배열과 포인터(3)
문) 다음 C프로그램의 실행 결과로 옳은 것은?
#include<stdio.h>
int main(void){
int a[4] = {10, 20, 30};
int *p = a;
p++;
*p++ = 100;
*++p = 200;
printf("a[0]=%d, a[1]=%d, a[2]=%d\n", a[0], a[1], a[2]);
}
28. 배열과 포인터(4)
문) 다음 C프로그램의 실행 결과로 옳은 것은?
#include<stdio.h>
void main(){
int num[4] = {1, 2, 3, 4};
int *pt = num;
pt++;
*pt++ = 5;
*pt+ = 10;
pt--;
*pt+++ = 20;
printf("%d %d %d %d", num[0], num[1], num[2]);
}
반응형