EASY7
[C언어 20강] 포인터식 / 배열 본문
포인터에서 연산작업 덧셈 뺄셈하기
#include<stdio.h>
void main()
{
char c='A';
int i=5;
char *p_c=&c;
int *p_i=&i;
printf("c 결과값 %c p_c포인터 정보 %c \n", c,(*p_c)++); B A
printf("i 결과값 %c p_i포인터 정보 %c \n", i, *p_i+=1); 6 6 *p_i를 6으로 저장하고 6 6 출력
printf("%c \n", *p_c+1); C
}
++ -- 은 오른쪽에서 왼쪽방향으로 계산을 한다.
괄호 유무는 아주 중요하다.
(*p)++ , ++*p는 현재 포인터값을 가져와서 그 값 자체를 조각함.
*p++는 p의 주소값 3075908이 다음 요소값 3075912를 가리키며 그 주소가 가리키는 내용을 지칭
*(p+2)는 p의 다음다음 요소값이 가리키는 값
#include<stdio.h>
void main()
{
char c='A';
int i;
for (i=0; i<26; i++)
printf("%c %d \n", c+i, c+i);
}
A 65
B 66
...
c값 자체가 바뀌는 것이 아니라 출력만 +1,+2됨
int이면 주소가 4씩 증가한다.
왜 주소가 증가해야할 까
메모리 아깝게
값만 4byte이면 되는 거 아닌가
'개발 공부 > C' 카테고리의 다른 글
[C언어 22강] 포인터 배열 (0) | 2016.07.12 |
---|---|
[C언어 21강] %출력 형태 (0) | 2016.07.12 |
[C언어 19강] 이중포인터 (0) | 2016.07.10 |
[C언어 18강] 포인터란? (0) | 2016.07.09 |
[C언어 17강] 두 문자열을 비교하는 strcmp() (0) | 2016.07.09 |
Comments