검색결과 리스트
글
다중포인터란? 포인터 변수의 주소를 담고 있는 포인터
*(참조연산자)만큼 참조 연산이 일어나면서 접근함
int **pp : 이중포인터
int ***ppp : 삼중포인터
#include<stdio.h>
void main()
{
char arr[4][10] = {"Dog","Cat","Monkey",Mouse"};
char (*p)[10];
int i=0;
p=arr;
for(i=0; i<4; i++)
{
printf("배열 포인터 p+ %d = %s 주소: %d \n",i,p+i,p+i);
}
printf("\n");
for(i=0; i<4; i++)
{
printf("이차원배열 arr + %d \ %s 주소: %d \n",i,arr+i,arr+i);
}
}
*(참조연산자)만큼 참조 연산이 일어나면서 접근함
int **pp : 이중포인터
int ***ppp : 삼중포인터
void main()
{
char arr[4][10] = {"Dog","Cat","Monkey",Mouse"};
char (*p)[10];
int i=0;
p=arr;
for(i=0; i<4; i++)
{
printf("배열 포인터 p+ %d = %s 주소: %d \n",i,p+i,p+i);
}
printf("\n");
for(i=0; i<4; i++)
{
printf("이차원배열 arr + %d \ %s 주소: %d \n",i,arr+i,arr+i);
}
}
'C > 난정말C Programming을 공부한적이없다고요' 카테고리의 다른 글
Call by Address (0) | 2011.08.17 |
---|---|
Call By Value (0) | 2011.08.17 |
다차원 배열(이차원배열) (0) | 2011.08.16 |
배열 and 포인터 (0) | 2011.08.16 |
포인터 (0) | 2011.08.16 |
설정
트랙백
댓글
글
포인터란? 주소 그자체
①포인터는 메모리의 번지 주소.
②포인터 변수 메모리의 주소를 가지는 변수.
③포인터 변수의 크기는 4Byte 의 부호없는 정수형
◎포인터연산자
① &(주소연산자)는 변수의 메모리 주소를 표현해주는 연산자.
② *(참조자) 는 주소를 이용하여 변수값을 접근하는 연산자.
#include <stdio.h>
void main()
{
int number =100;
int *p;
p= &number;
printf("p =%d \n",p);
printf("*p = %d \n",*p);
}
《p= &number》
→p는 포인터 변수로 number의 주소값을 가지고 있다.
p라는 포인터 변수가 가지는 값을 주소로 보고, 그값(number의 주소)을 참조해서 해당주소의
실제값을 출력.
printf에서 *p라는 참조연산자를 실행한값은 p라는 퐁인터변수가 가지는 값을 주소로 보고 그값(주소)을
참조하여 한번더 들어간다는 뜻.
즉, number값은 100 p값은 0000 이라는 number의 주소값
&number값은 0000(주소) &p값은 0004 라는 포인터 변수의 p값
*p값은 0000 이라는 p값의 데이터를 참조해서 찾아간 number의 값
#include <stdio.h>
void main()
{
char *p = "string";
while (*p)
{
printf("%c,%d \n",*p,p);
p++;
}
}
p[]로 사용하던것을 *p로 선언!
while문에서 *p의 마지막인 Null값을 만나면 종료.
포인트 변수에 +1
*scanf로 받을시
#include<stdio.h> #include<stdio.h>
void main() void main()
①포인터는 메모리의 번지 주소.
②포인터 변수 메모리의 주소를 가지는 변수.
③포인터 변수의 크기는 4Byte 의 부호없는 정수형
◎포인터연산자
① &(주소연산자)는 변수의 메모리 주소를 표현해주는 연산자.
② *(참조자) 는 주소를 이용하여 변수값을 접근하는 연산자.
#include <stdio.h>
void main()
{
int number =100;
int *p;
p= &number;
printf("p =%d \n",p);
printf("*p = %d \n",*p);
}
《p= &number》
→p는 포인터 변수로 number의 주소값을 가지고 있다.
p라는 포인터 변수가 가지는 값을 주소로 보고, 그값(number의 주소)을 참조해서 해당주소의
실제값을 출력.
printf에서 *p라는 참조연산자를 실행한값은 p라는 퐁인터변수가 가지는 값을 주소로 보고 그값(주소)을
참조하여 한번더 들어간다는 뜻.
즉, number값은 100 p값은 0000 이라는 number의 주소값
&number값은 0000(주소) &p값은 0004 라는 포인터 변수의 p값
*p값은 0000 이라는 p값의 데이터를 참조해서 찾아간 number의 값
#include <stdio.h>
void main()
{
char *p = "string";
while (*p)
{
printf("%c,%d \n",*p,p);
p++;
}
}
p[]로 사용하던것을 *p로 선언!
while문에서 *p의 마지막인 Null값을 만나면 종료.
포인트 변수에 +1
#include<stdio.h> #include<stdio.h>
void main() void main()
{ (수정code) {
char *p; → char *p,arr[10];
scanf("%s",p); scanf("%s",arr);
printf("%s",p); p=arr;
} printf("%s",p);
}
《p=arr;》→배열의 이름(첫번째주소값)을 p에대입.
char *p; → char *p,arr[10];
scanf("%s",p); scanf("%s",arr);
printf("%s",p); p=arr;
} printf("%s",p);
}
'C > 난정말C Programming을 공부한적이없다고요' 카테고리의 다른 글
다차원 배열(이차원배열) (0) | 2011.08.16 |
---|---|
배열 and 포인터 (0) | 2011.08.16 |
변수의 공간할당 (0) | 2011.08.16 |
배열(문자) (0) | 2011.08.16 |
배열(숫자) (0) | 2011.08.16 |
RECENT COMMENT