반응형
C언어 포인터
포인터:
1. 포인터 변수는 * 을 사용하여 선언
2. 포인터에는 주소값을 저장.
3. 포인터 변수는 소문자로 시작하고 그 다음부터 대문자로 씀.
(변수를 봤을때, 이건 포인터 변수구나 라는 것을 사람들이 바로 알 수 있게. )
아래 코드를 보면 이해하기 쉬울 겁니다.
예제1.
#include<stdio.h>
int main(void){
int a=10; //변수 a가 double이면 포인터도 더블 ,인트면 포인터도 인트
int *pA=NULL; //포인터를 쓰기 위해서는 포인터를 꼭 초기화 해줘야됨.
//포인터 이름은 소문자로 시작하고 그 다음 알파벳 부터 대문자로 써야됨.
pA=&a; //주소값a를 pA에 넣음
*pA=20; //*pA 즉 주소값이 a와 똑같은 포인터에 20 을 넣음
//주소값이 a와 같으므로 a에20을 넣은 것과 같음
printf("%d",a);
return 0;
}
#결과:
20
예제2.
a=100,b=200
포인터로 a=200,b=100으로 바꾸기
#include<stdio.h>
void swap(int *x,int *y){ //*x를 사용함으로 인해 주소값을 받아올 수 있음.
int tmp;
tmp=*x;
*x=*y;
*y=tmp;
}
int main(void){
int a=100,b=200;
printf("%d %d\n",a,b); //a=100,b=200
swap(&a,&b); //포인터로 바꾸므로 주소값을 넣어줘야됨.
printf("%d %d\n",a,b); //a=200,b=100
}
#결과:
a=200,b=100
예제3.
포인터 배열
#include<stdio.h>
int main(void){
int a=10, b=20,c=30;
int *pABC[3]={&a,&b,&c};
printf("%d\n",pABC[0]); //pABC 배열의 0인덱스위치에 있는 변수 주소값을 가져옴
printf("%d\n",pABC[1]);
printf("%d\n",pABC[2]);
printf("%d\n",*pABC[0]); //pABC 배열의 0인덱스위치에 있는 변수를 가져옴
printf("%d\n",*pABC[1]);
printf("%d\n",*pABC[2]);
}
#결과:
위 세개는 컴퓨터 메모리 주소값이므로, 컴퓨터마다 다른 값이 나올 수 있습니다.
예제4.
문자열 변경, 포인터 사용.
#include<stdio.h>
#include<string.h>
int main(void){
int i;
char str[]="hello";
strcpy(str,"hey\n");//문자열 변경시 strcpy써야됨
//str배열의 hello를 hey 로 바꿈
printf("%s",str);
char *p="hi~~";
p="bye"; //포인터 문자 변경시 그냥 바로 변경하면 됨.
//메모리에 직접 접근해서 변경하기 때문에 strcpy()함수를 안써도 됨.
printf("%s\n",p);
return 0;
}
#결과:
hey
bye
반응형
'C언어 > C언어 문법' 카테고리의 다른 글
C언어 문법 - 열거형 (enum) 관련 간단한 예제/ 간단한 코드 (0) | 2021.03.18 |
---|---|
C언어 - 구조체/구조체 간단한 예제/구조체 쉽게 이해하기/구조체 예제코드 (0) | 2021.03.16 |
C언어 - 구조체 포인터/구조체 포인터 예제/구조체 포인터 쉽게 이해하기 (0) | 2021.03.15 |
C언어 getchar(),putchar() 간단한 예제/getchar(),putchar() 이해하기 쉬운 예제/ EOF 는? (0) | 2021.03.10 |
C언어-함수 포인터 간단한 예제, 함수 포인터를 사용한 계산기 프로그램(매우 쉬움/이해하기 쉬움) (0) | 2021.03.08 |
댓글