Pointer
2009. 8. 5. 22:54ㆍHW & SW
1. printf("%#010x\r\n", imsip);
#: 주소표현시 0x를 나타낸다.
2. 포인터의 일반적 사용
#include <stdio.h>
main(0
{
int imsi = 5;
int *imsip;
imsip = &imsi; //없을 경우 임의의 장소에 초기화되어 segmentation fault 발생
*imsip = imsi;
printf("imsip[%#010x] *imsip[%d]\r\n", imsip, *imsip);
}
실행
imsip[0x8047d24] *imsip[5]
3. 배열 초기화
int imsi[2][3] = {0}; //0으로 모두 초기화
int imsi[2][3] ={{1,2,8},{34,634,7}};
4. 배열명의 숨은 뜻
main()
{
int imsi[3] = {5,3,7};
int *imsip;
imsip = imsi;
printf("%d\n", *imsip); //5
printf("%d %d %d\n", *imsip,*(imsip+1),*(imsip+2)); //5,3,7
printf("%d\n", *imsi); //5
printf("%d %d %d\n", *imsip,*(imsip+1),*(imsip+2)); //5,3,7
int *imsip;
imsip = imsi;
printf("%d\n", *imsip); //5
printf("%d %d %d\n", *imsip,*(imsip+1),*(imsip+2)); //5,3,7
printf("%d\n", *imsi); //5
printf("%d %d %d\n", *imsip,*(imsip+1),*(imsip+2)); //5,3,7
}
5. 캐스트 연산자
int pointer=5;
(int*)pointer; //5의 값을 주소
6. 함수인자 포인터
main()
{
5. 캐스트 연산자
int pointer=5;
(int*)pointer; //5의 값을 주소
6. 함수인자 포인터
main()
{
void add(int*,int);
int imsi[3] = {7,4,5};
int *imsip;
int i;
int length;
imsip = imsi;
length = sizeof(imsi)/ sizeof(int);
add(imsip, length);
add(imsi,length);
int imsi[3] = {7,4,5};
int *imsip;
int i;
int length;
imsip = imsi;
length = sizeof(imsi)/ sizeof(int);
add(imsip, length);
add(imsi,length);
}
void add(int *imsip, int length)
{
void add(int *imsip, int length)
{
int i;
for(i=0;i<length;i++,imsip++)
*imsip +=10;
for(i=0;i<length;i++,imsip++)
*imsip +=10;
}
7. 함수인자 구조체 포인터
#include <stdio.h>
struct imsi{
int x;
int y;
};
main()
{
void swap_struct(struct imsi*);
struct imsi one;
one.x=10;
one.y=1024;
swap_struct(&one);
}
void swap_struct(struct imsi*temp)
{
int sample;
sample = temp->x;
temp->x = temp->y;
temp->y = sample;
}
8. malloc, calloc
char *imsip;
struct grades *grade;
imsip = (char*)calloc(10,sizeof(char0);
grade = (struct grades*) calloc(10,sizeof(struct grades));
calloc: NULL로 초기화, 시간 걸림
7. 함수인자 구조체 포인터
#include <stdio.h>
struct imsi{
int x;
int y;
};
main()
{
void swap_struct(struct imsi*);
struct imsi one;
one.x=10;
one.y=1024;
swap_struct(&one);
}
void swap_struct(struct imsi*temp)
{
int sample;
sample = temp->x;
temp->x = temp->y;
temp->y = sample;
}
8. malloc, calloc
char *imsip;
struct grades *grade;
imsip = (char*)calloc(10,sizeof(char0);
grade = (struct grades*) calloc(10,sizeof(struct grades));
calloc: NULL로 초기화, 시간 걸림
'HW & SW' 카테고리의 다른 글
쓰레드 생성과 종료 (0) | 2010.01.18 |
---|---|
다이얼로그 베이스 색상 변경 (0) | 2010.01.18 |
PSPICE (0) | 2008.10.05 |
3차원 배열 동적할당 (0) | 2007.11.12 |
색연필 - 저항계산 (0) | 2007.10.17 |