포인터.

Slides:



Advertisements
Similar presentations
SPARCS Wheel Seminar Mango X Sugoi
Advertisements

패널자료 분석
라오디게아 교회의 교훈 본문 계 3: ○라오디게아 교회의 사자에게 편지하라 아멘이시요 충성되고 참된 증인이시요 하나님의 창조의 근본이신 이가 이르시되 15. 내가 네 행위를 아노니 네가 차지도 아니하고 뜨겁지도 아니하도다 네가 차든지 뜨겁든지 하기를 원하노라.
2015학년도 1학기 버디 프로그램 오리엔테이션 (목) 16:00.
열왕기하 1장을 읽고 묵상으로 예배를 준비합시다..
다문화가정의 가정폭력의 문제점 연세대학교 행정대학원 정치행정리더십 2학기 학번 이름 홍 진옥.
후에 70인역(LXX)을 좇아 영어 성경은 본서의 중심 주제인 “엑소도스”(출애굽기)라 하였다.
지금 나에게 주신 레마인 말씀 히브리서 13장 8절.
예수의 제자들 담당교수 : 김동욱.
Lecture Part IV: Ecclesiology
예배의 외부적인 틀II - 예배 음악 조광현.
천주교 의정부교구 주엽동본당 사목협의회 사목활동 보고서
서비스산업의 선진화, 무엇이 필요한가? 김 주 훈 한 국 개 발 연 구 원.
전시회 개요 Ⅰ. 전시명칭 개최기간 개최장소 개최규모 주 최 참 관 객 현 지 파 트 너 General Information
Home Network 유동관.
통신이론 제 1 장 : 신호의 표현 2015 (1학기).
I. 기업과 혁신.
초화류 종자 시장 규모 100억원 이상(추정, 생산액의 10%정도 차지)
[ 한옥 실측 ] 1. 약실측 2. 정밀실측 조선건축사사무소.
A제조용수/B환경관리/C시설관리 ㈜ 에이플러스 코리아
제14장 스팸 메일 대응 기술.
월간HRD 창간26주년 기념 & HRD역사관 건립기금 모금
공공기관의 업무향상을 위한 SmartEKP 협업 솔루션
발표순서 추진배경 자유이용사이트 현황 만료저작물 활용 사례 공유저작물 이용 활성화 사업 추진 계획.
(Lifetime Physical Fitness and Wellness)
노동조합의 기능과 사용자의 고용관계 정책 노사관계론 이성희 교수님
중학교 기술ㆍ가정 1.
Chapter 01. 해킹의 정의와 역사.
Step Motor Step Motor의 개요 Step Motor의 원리 3. Step Motor의 특징
George Soros의 투자 전략 협동조합 금융학과 담당교수 : 류 덕 위.
섬유의 종류에 따른 공기저항 비교 지도교사: 김 은 정 선생님.
안녕하십니까? 지금부터 저희 회사에 대해 설명 드리도록 하겠습니다..
■ 분위기 조성 게임(Icebreaker) 이란?
홍콩과기대 방문 결과 보고 학교법인 포항공과대학교.
윤여규 / / AFTER [ 윤 여 규 ] 윤여규 / /
대표이사 – 김휘중 대표이사 소개 조선대학교 무역학과 수학 크린코리아 전남,광주 지점장 대신용역 대표이사 하나건설 대표이사
교육학개론 2조 강재현 황소정 연미란 이호 장윤정 이아림 김효연
FXOpen E-Sports Team(약칭 FXO)
Contents 정보시스템 통제 및 보안의 중요성 시스템 장애요인 정보시스템의 보안대책 정보시스템 통제
제6장 조건문.
슬라이드 1~21까지는 각자 복습! 슬라이드 22부터는 수업시간에 복습
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express.
-Part2- 제3장 포인터란 무엇인가.
제3장 추가 실습 3장 관련 C 언어 프로그래밍 실습.
처음으로 배우는 C 프로그래밍 제2부 기초 제5장 반복문.
6장. printf와 scanf 함수에 대한 고찰
작성자 : 씨네모 (정의장) 멜주소 : 연락처 :
누구나 즐기는 C언어 콘서트 제4장 수식과 연산자.
8장 포인터.
연산자 대입 연산자 산술 연산자 관계 연산자 논리 연산자 비트 연산자 콤마 연산자 축약 연산자 sizeof 연산자
C 프로그래밍.
C 프로그래밍.
Chapter 10. 포인터.
13. 포인터와 배열! 함께 이해하기.
11장. 1차원 배열 IT응용시스템공학과 김 형 진 교수.
컴퓨터 프로그래밍 기초 - 4th : 수식과 연산자 -
제어문 & 반복문 C스터디 2주차.
컴퓨터 프로그램 제2,3장 간단한 C 프로그램 김 문 기.
게임프로그래밍 I - 1차원 배열 - 공주대학교 게임디자인학과 박 찬 교수 2011년 4월 25일.
Chapter 11. 배열과 포인터.
Chapter 05. 입출력 함수.
-Part2- 제1장 1차원 배열이란 무엇인가.
6장 반복제어문 for 문 while 문 do while 문 기타 제어문.
18장. 다차원 배열 그리고 포인터.
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express Slide 1 (of 28)
-Part2- 제2장 다차원 배열이란 무엇인가.
C 프로그래밍은 매우 도전적인 작업이다. 도전의 이면에 철저한 준비와 체계적인 노력
배열.
11장. 1차원 배열.
Presentation transcript:

포인터

목차 포인터란? 배열이란? 포인터 배열 AND 배열 포인터 선언부를 예제에서 생략!

포인터란 ? 포인터는 주소를 저장하는 변수이다. C 언어의 가장 대표적인 특징 중 하나이다. 사용하고자 하는 대상에 변수명을 통하지 않고 직접 접근 가능 포인트 변수의 크기는 모두 4바이트(byte)이다.

포인터 변수의 선언 ! 자료형 : 자료형을 지정, 뒤에 * 연산자를 붙인다. 포인터 변수 이름 : 주소를 저장할 변수의 이름을 지정한다. NULL 포인터 설정 : 포인터 변수 선언 시 NULL로 초기화함.

예제 1 c == *&c == *cp 같은 메모리 공간의 이름 char c='A'; char* cp=NULL; cp=&c; printf("%x %c %c \n", &c, c, *&c); printf("%x %x %x \n", &cp, cp, *&cp); printf("%c \n", c); printf("%c \n", *cp); return 0; c == *&c == *cp 같은 메모리 공간의 이름

예제 2 int a=0, b=0, c=0; int* ip=NULL; ip=&a; *ip=10; printf("%d %d %d %d\n", a, b, c, *ip); ip=&b; *ip=20; ip=&c; *ip=30; return 0;

배열 하나의 대표 변수 명에 여러 개의 동일한 형을 갖는 데이터를 기억하기 위한 자료 구조 나머지는 예제를 보면서 이해해 봅시다 ^^

1차원 배열 *(array+i) == *&array[i] == array[i]는 값을 나타낸다 array == array+i == &array[i]는 주소를 나타낸다 배열 이름은 배열의 시작 주소이다

One 차원 배열 예제 one 1 int array[3]={10, 20, 30}; printf("%x %x %x \n", array, array+0, &array[0]); printf(“%x %x \n",array+1, &array[1]); printf(“%x %x \n",array+2, &array[2]); printf("%d %d %d \n", sizeof(array), sizeof(array+0), sizeof(&array[0])); return 0; } 배열의 이름은 ‘배열의 시작 주소’ array == array+0 ==&array[0] array+1 ==&array[1] array+2 ==&array[2]

EX2) int array[3]={10, 20, 30}; printf("%d %d %d \n",*(array+0), *&array[0], array[0]); printf("%d %d %d \n",*(array+1), *&array[1], array[1]); printf("%d %d %d \n",*(array+2), *&array[2], array[2]); return 0; }

2차원 배열 *(array+i) == *&array[i] == array[i] 는 주소를 나타낸다

2차원 배열 예제 int array[3][3]={10,20,30,40,50,60,70,80,90}; printf("%x %x %x \n", &array[0][0], &array[0][1], &array[0][2]); printf("%x %x %x \n", &array[1][0], &array[1][1], &array[1][2]); printf("%x %x %x \n", &array[2][0], &array[2][1], &array[2][2]); printf("---------------\n"); printf("%d %d %d \n", *&array[0][0], *&array[0][1], *&array[0][2]); printf("%d %d %d \n", *&array[1][0], *&array[1][1], *&array[1][2]); printf("%d %d %d \n", *&array[2][0], *&array[2][1], *&array[2][2]); return 0; }

Pointer 배열 배열에 메모리 주소 값을 저장할 수 있는 배열 즉, 포인터를 요소로 지니는 배열이다. 예제 들어가기 전에 하나만 봅시다. Int *arr[5]; arr1이라는 이름의 배열을 선언하고 있다. 배열의 길이는 10이고, 요소의 자료형은 int형 포인터(int*)이다.

예제 one ! int a=10, b=20, c=30; int* arr[3]={&a,&b,&c};     printf("%d\n", *arr[0]);     printf("%d\n", *arr[1]);     printf("%d\n",*arr[2]);     return 0; } 배열의 요소가 포인터이다. arr[0]은 10을 가리키고 a의 주소값을 가진다. arr[1]은 20을 가리키고 b의 주소값을 가진다. arr[2]는 30을 가리키고 c의 주소값을 가진다. 연산자 * 를 만나 각자 가지고 있는 주소의 값을 출력한다. 문자열 상수는 메모리 공간에 저장이 되면, 그 순간 문자열 상수의 주소값이 반환된다.

예제 two !

배열 포인터 배열을 가리키는 포인터. 임의의 정의한 2개의 배열 포인터의 타입이 같다면, 포인터 연산에 의해 증가 및 감소되는 값의 크기가 일치한다.

Ex1) int arr1[3][2];  int arr2[2][3];  printf("arr1 :    %d\n",arr1);  printf("arr1+1 :  %d\n",arr1+1);  printf("arr1+2 :  %d\n",arr1+2);  printf("arr1 :    %d\n",arr2);  printf("arr1+1 :  %d\n",arr2+1);  printf("arr1+2 :  %d\n",arr2+2);

포인터 배열 , 배열 포인터 차이 》 》 포인터 배열 : 각각의 포인터마다 관계가 없는 서로 다른 주소 값을 가리킬 수 있다. 》 》 배열 포인터 : 연속적인 메모리만 가리킬 수 있다. ?

- The END -