학습목표 Chapter 2-1. 변수와 포인터 변수의 선언과 변수에 대한 메모리 할당을 살펴본다.

Slides:



Advertisements
Similar presentations
비즈쿨 - 정 성 욱 - - 금오공고 비즈쿨 - 정 성 욱 1. 나는 각 단원들의 활동들에 성실하게 참여 하겠습니다. 우리의 다짐 2. 나는 나와 전체의 발전을 위해 각 멘토들의 지도에 순종하겠습니다. 3. 나는 각 단원들을 숙지함으로써 비즈니스 마인드를 함양하고 자신의.
Advertisements

03 변수와 자료형 세종대학교 최옥경 교수 참고 : 한빛미디어 뇌를 자극하는 C, INFINITY Perfect C.
병리과의 질관리 2009 웹 기반 심사프로그램 소개 CHA 의과학대학교 분당차병원 김 광 일.
데이터의 표현과 연산 (1) (Chapter 3)
제 3 장 변수와 자료형.
슬라이드 1~21까지는 각자 복습! 슬라이드 22부터는 수업시간에 복습
쉽게 풀어쓴 C언어 Express 제5장 수식과 연산자 C Express Slide 1 (of 34)
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express.
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
2014 ITA 8월 강의 C Programming -1주차- C언어 기초 정대진 ( )
4부 클래스 라이브러리 “4부에서는 자바 언어의 API인 클래스 라이브러리에 관해 설명합니다
2강. JAVA 프로그래밍이란?-II & 변수 JAVA 프로그램 환경설정과 실행 방법 변수란?
제3장 추가 실습 3장 관련 C 언어 프로그래밍 실습.
4장: 자료형과 수식.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
누구나 즐기는 C언어 콘서트 제4장 수식과 연산자.
Chapter 13 문자 데이터와 문자열 문자 데이터 문자열.
제 18 강 데이터 타입 타입, 변환, 캐스팅 shcho.pe.kr.
변수와 자료형.
C 9장. 구조체 #include <stdio.h> int main(void) { int num;
기초C언어 제3주 C프로그램 구성요소, 변수와 자료형 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
컴퓨터 프로그래밍 기초 - 2nd : scanf(), printf() 와 연산자 -
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
Chapter 4 – 연 산 자 Outline 4.1 산술 연산자 4.2 관계 연산자 4.3 동등 연산자 4.4 논리 연산자
표준 출력 함수 printf 출력 데이터 서식화(formatting) 표준 입력 함수 scanf 입력 데이터 서식화
변수와 자료형.
제 2 장 변수와 상수.
프로그래밍2 및 실습 C언어 기반의 C++ 2.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
4주차: Data Types and Functions
5장. 상수와 기본 자료형. 5장. 상수와 기본 자료형 5-1 C 언어가 제공하는 기본 자료형 자료형(data type) 기본 자료형 사용자 정의 자료형 int val; "선언할 변수의 특징을 나타내기 위한 키워드" 기본 자료형 기본적으로 제공이 되는 자료형 사용자.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
23강 API - II - 약방의 감초 Random 클래스 - Scanner 및 Sysout - Wrapper 클래스의 이해
Arrays 요약.
Chapter 4 수식과 연산자.
제2장 데이터형과 표준 입출력문 문봉근.
C언어 프로그래밍의 이해 Ch13. 선행처리기와 주석문.
11장. 1차원 배열 IT응용시스템공학과 김 형 진 교수.
Java의 정석 제 2 장 변수(Variable) Java 정석 남궁성 강의
컴퓨터 프로그래밍 기초 - 4th : 수식과 연산자 -
칼빈의 생애와 개혁자로의 변모 사학과 김종식.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 05. 상수와 기본 자료형.
프로그래밍 원리 Chapter 04 자료 처리와 연산자 신한대학교 IT융합공학부 박 호 균.
국제의료관광 관련 법, 제도.
Chapter 04 자료 유형.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
컴퓨터 프로그램 제2,3장 간단한 C 프로그램 김 문 기.
Java의 정석 제 4 장 조건문과 반복문 Java 정석 남궁성 강의
Chapter 04. 데이터의 표현과 연산(Ⅱ).
Chapter 05. 입출력 함수.
실습과제 1(조건문, ) 표준입력으로 수축기 혈압을 입력 받아 그에 따른 적당한 표현을 화면에 출력하는 프로그램을 if-else 문을 이용하여 작성.
제 3장 데이터형과 연산자 Hello!! C 언어 강성호 김학배 최우영.
C 프로그래밍 기초.
-Part1- 제6장 자료형이란 무엇인가.
-Part1- 제8장 조건문이란 무엇인가 (교재 199페이지 ~ 224페이지)
자바 5.0 프로그래밍.
CHAPTER 9-1 한국의 사회복지정책 - 사회보험제도 -
C언어 프로그래밍의 이해 Ch03. 기본 자료형, 변수와 상수.
컴퓨터 프로그래밍 기초 - 11th : 파일 입출력 및 구조체 -
3주차: Control Flow and Others
박성진 컴퓨터 프로그래밍 기초 [03] 변수와 자료형 박성진
Spring, 2019 School of CSE Pusan National University
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
printf("Global Korea\n");
개정판 누구나 즐기는 C언어 콘서트 제3장 변수와 자료형 출처: pixabay.
Chapter 09. 배열.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 17. 포인터의 포인터.
11장. 1차원 배열.
경찰학 세미나 제 5 강 경찰관직무집행법 2조 5호의 의미 신라대학교 법경찰학부 김순석.
Presentation transcript:

학습목표 Chapter 2-1. 변수와 포인터 변수의 선언과 변수에 대한 메모리 할당을 살펴본다. 포인터 변수의 선언과 포인터 변수가 참조하는 데이터의 관계를 살펴본다. 포인터 연산의 규칙을 알아본다.

1. 변수와 메모리 주소 Chapter 2-1. 변수와 포인터 1. 변수와 메모리 주소 변수(Variable)는 데이터를 저장하기 위한 메모리 공간의 이름이다. 변수는 char, int, float, double과 같은 C 언어의 기본 자료형(Data Type)을 이용하여 선언하며, 자료형의 크기만큼 메모리를 할당받는다. 문자형 : 문자형(char)은 하나의 ASCII 코드로 표현한다. 1바이트 크기로 하나의 문자를 저장하는 용도로 사용되며, ASCII 코드값을 1바이트 정수 형태로 표현한다. (한글은 2 바이트!) 정수형 : 컴퓨터에서 처리하는 가장 기본적인 수는 정수이며, 이러한 정수 값은 크기에 따라 2바이트, 4바이트로 구성되며 크기별로 short, int, long으로 표현된다. 실수형 : 지수부를 갖는 실수형 자료의 표현을 위해 C언어에서는 부동형실수를 사용한다. 이러한 부동형 실수는 표현할 수 있는 실수의 크기, 즉 정밀도에 따라 다음과 같이 정의한다. float형  4바이트 double형  8바이트

1.1 변수의 메모리 할당 Chapter 2-1. 변수와 포인터 변수 선언 후, 메모리의 할당구조이다. char ch; 1.1 변수의 메모리 할당 변수 선언 후, 메모리의 할당구조이다. char ch; int num; float f_num; double d_num; printf("%d, %d, %d, %d \n", sizeof(ch), sizeof(num), sizeof(f_num), sizeof(d_num)); 1, 4, 4, 8

Chapter 2-1. 변수와 포인터 1.2 변수의 주소 변수는 주어진 시작주소로부터 자료형의 크기만큼 바이트 단위로 메모리에 할당되며, 할당된 영역에 값을 저장하여 사용한다. 주소연산자 “&” char ch; int num; float f_num; double d_num; ch='A'; num=5000; f_num=3.14; d_num=f_num*2; printf("%p, %p, %p, %p \n", &ch, &num, &f_num, &d_num ); // 변수의 시작 주소를 출력한다. %p는 16진수, %u는 10진수 형태로 출력

1.3 주소의 연산 Chapter 2-1. 변수와 포인터 값의 연산과 주소의 연산은 차이점이 있다. 1.3 주소의 연산 값의 연산과 주소의 연산은 차이점이 있다. 값의 연산 : 변수에 저장된 값 자체가 변화한다. 주소의 연산 : 변수의 자료형 크기만큼 주소가 변화한다. char ch; int num; float f_num; double d_num; ch='A'; num=5000; f_num=3.14; d_num=f_num*2; printf("%c, %d, %.2f, %.2lf \n", ch, num, f_num, d_num); printf("%p, %p, %p, %p \n", &ch, &num, &f_num, &d_num ); printf("\n%c, %d, %.2f, %.2lf \n", ch+1, num+1, f_num+1, d_num+1); // 값의 증가 printf("%p, %p, %p, %p \n", &ch+1, &num+1, &f_num+1, &d_num+1); // 주소의 증가

Chapter 2-1. 변수와 포인터 1.3 주소의 연산 값과 주소의 변화를 보여준다.

1.4 cast 연산자 (형변환 연산자) Chapter 2-1. 변수와 포인터 명시적으로 형 변환을 하고자 할 때, 형변환 연산자를 사용할 수 있다. 변수나 값 뿐만 아니라 메모리 주소도 형변환이 가능하다. (형식) (데이터형 *) 주소

1.4 cast 연산자 (형변환 연산자) Chapter 2-1. 변수와 포인터 다음은 주소를 형 변환한 다음, 주소값의 변화를 보여준 결과이다. 0012FED8 0012FEC9 0012FEBD 0012FEAD

2. 포인터란 무엇인가? Chapter 2-1. 변수와 포인터 2. 포인터란 무엇인가? C언어의 포인터란 어떤 객체에 할당된 메모리 주소를 말한다. 이때 객체는 변수, 함수, 배열 등 메모리를 할당받는 모든 대상을 의미한다. C언어에는 할당받은 메모리 공간의 주소를 확인하고, 제어할 수 있는 포인터 자료형이 있다. 포인터 자료형에는 기본으로 파생되는 다음과 같은 자료형들이 존재한다. 포인터 자료형 포인터 변수 배열 포인터  배열을 가리키는 포인터 포인터 배열  포인터를 원소로 하는 배열 함수 포인터  함수를 가리키는 포인터 다중 포인터 포인터에는 실행중인 프로세스의 메모리 영역을 접근할 수 있는 주소를 저장하며, 포인터 자료형에 따라 실행중인 프로세스의 메모리에 접근할 대상이 달라지게 된다.

Chapter 2-1. 변수와 포인터 2.1 포인터 변수 포인터 변수란 다른 객체에 할당된 메모리의 시작 주소를 저장하는 변수를 의미한다. (형식) 자료형 *변수이름; &: 변수에 할당된 메모리의 시작 주소를 의미하는 연산자 *: 포인터 변수가 가리키는 위치에 저장된 내용을 참조하는 연산자(실행문) 자료형과 무관한 4바이트!

Chapter 2-1. 변수와 포인터 2.1 포인터 변수 포인터 변수를 이용한 메모리 참조

2.2 포인터 변수의 자료형 Chapter 2-1. 변수와 포인터 포인터 변수 선언시 주의할 점은, 포인터 변수의 자료형이다. 포인터 변수는 어떠한 자료형으로 선언하더라도 32비트 운영체제에서는 항상 4바이트를 할당 받게 된다.  주소값을 저장하기 위하여! 포인터 변수의 자료형? 포인터 변수는 할당된 주소에 저장할 데이터와 동일한 자료형으로 선언되어야 한다. 변수와 포인터 변수의 자료형이 다르면 어떤 현상이 발생할까? 포인터 변수의 자료형은 포인터 변수가 가리키는 주소로 부터 몇 바이트를 읽어 와야 하는지에 대한 정보를 주는 것이다. 이때 참조할 대상의 크기가 정확하지 않다면 다른 주소로 가서 의미 없는 데이터를 참조하게 되므로, 프로그램의 결과는 논리 오류가 된다.

Chapter 2-1. 변수와 포인터 2.2 포인터 변수의 자료형 예제

Chapter 2-1. 변수와 포인터 2.2 포인터 변수의 자료형 예제 문자 ‘A’의 ASCII 코드 값 출력

3. 포인터 연산자 Chapter 2-1. 변수와 포인터 포인터 변수는 +, -, ++, -- 연산자를 이용하여 처리할 수 있으며, 이때 연산의 결과는 포인터 변수의 자료형 크기만큼 증감된다.

Chapter 2-1. 변수와 포인터 3. 포인터 연산의 결과

3. cast 연산자를 이용한 포인터 연산 Chapter 2-1. 변수와 포인터 포인터 변수는 형변환 연산자를 사용하여 처리할 수 있다.

3. cast 연산자를 이용한 포인터 연산 결과 Chapter 2-1. 변수와 포인터 double형 포인터 변수를 다른 자료형으로 형 변환한 후, 포인터 수식을 처리하고 있다. 이때 주소의 1 증가는 포인터변수가 형변환된 자료형의 크기만큼 증가되는 것을 확인할 수 있다.

Chapter 2-1. 변수와 포인터 요약 변수에는 값을 저장하며, 변수를 저장하기 위한 메모리는 선언한 자료형의 크기만큼 할당된다. 주소연산자 “&”를 사용하여 변수에 할당된 메모리의 시작주소를 참조할 수 있다. 포인터 변수는 주소를 저장하기 위한 변수이며, * 변수명 의 형태로 선언한다. 포인터 변수에 할당되는 메모리의 크기는 선언되는 자료형과 무관하며, 32비트 운영체제에서는 항상 4바이트를 할당받는다. 참조연산자 “*”를 사용하여, 포인터 변수의 주소에 저장된 데이터를 참조할 수 있다.