검색결과 리스트
포인터에 해당되는 글 5건
- 2011.10.12 Point?!
- 2011.08.17 구조체와 포인터
- 2011.08.17 다중포인터
- 2011.08.16 배열 and 포인터
- 2011.08.16 포인터
글
Point 란 번지. 포인터변수란 포인터를 저장할수 있는 변수 = 메모리의 특정위치를 저장
int *imsip; 의 정의는 imsip에 번지를 저장할수 있다는 뜻.
&연산자가 특정변수의 선두번지를 뜻한다면, *연산자는 그반대.
포인터변수에 저장된 선두번지를 참조하여 하나의값을 취함.
*imsip =1000; //imsip가 가르키는곳에 1000을 대입.
└→ imsip가 가르키는곳이 정확히 명시되어야함.
-Point는 형구별없이 무조건 4byte!
설정
트랙백
댓글
글
{
p= &ST;
printf("학번입력");
scanf("%d"&p->id);
printf("이름입력");
scanf("%s",&p->name);
printft("국,영,수 입력");
scanf("%d %d %d",&p->kor,&p->eng,&p->math);
printft("집주소");
scanf("%s",&p->address);
printf("학번: %d", p->id);
printf("이름:%s", p->name);
printf("국,영,수 성적: %d %d %d",p->kor, p->eng, p->math);
printf("집주소:%s",p->address);
※scanf("%s",p->name); → 띄어쓰기로 공백입력시 null값으로 인식, 띄어쓰기 전까지만 기억함
gets(p->name); → 한번만입력했는데 enter키가 자동으로 들어감 gets() 전에 scanf로
입력받을때 enter키가 버퍼에 남아있어서 gets()가 받아서 name에 넣어버림
getch(p->name); → enter값을 받아서 저장도안하고 사라짐
⊙해결방법: 버퍼 초기화 fflush(stdin);
- fflush(stdin);
gets(p->name);
'C > 난정말C Programming을 공부한적이없다고요' 카테고리의 다른 글
typedef (0) | 2011.08.17 |
---|---|
구조체와 배열 (0) | 2011.08.17 |
구조체 (0) | 2011.08.17 |
Call by Referance (0) | 2011.08.17 |
Call by Address (0) | 2011.08.17 |
설정
트랙백
댓글
글
다중포인터란? 포인터 변수의 주소를 담고 있는 포인터
*(참조연산자)만큼 참조 연산이 일어나면서 접근함
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 |
설정
트랙백
댓글
글
void main()
{
int arr[5]={1,2,3,4,5}'
int i=0;
for(i=0; i<5; i++) for(i=0; i<5, i++)
{ 동일코드 {
printf("%d",arr[i]); 〓 printf("%d",*(arr+i));
} }
printf("\n");
}
※배열이름은 배열의 첫번째 주소를 가지고있다.(포인터상수)
'C > 난정말C Programming을 공부한적이없다고요' 카테고리의 다른 글
다중포인터 (0) | 2011.08.17 |
---|---|
다차원 배열(이차원배열) (0) | 2011.08.16 |
포인터 (0) | 2011.08.16 |
변수의 공간할당 (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