묻공러
[언어 본색] #17 4장 - 포인터 변수 (2)
묻공러
묻지마공부
묻공러
전체
오늘
어제
  • 분류 전체보기 (521) N
    • C (54)
      • [코드조선] C 핵심 (35)
      • [언어본색] C 기초 (19)
    • C++ (72)
      • [루키스] C++ (9)
      • [루키스] 콜백함수 (6)
      • [루키스] STL (8)
      • [루키스] Modern C++ (11)
      • [노코프] C++ (10)
      • [노코프] Tips (16)
      • [일지] C++ (12)
    • C# (20) N
      • [루키스] C# (9)
      • [루키스] 자료구조 (3)
      • [루키스] 실전 문법 (8) N
    • 자료구조 & 알고리즘 (50)
      • [코드조선] C 자료구조 & 알고리즘 (6)
      • [합격자되기] C++ 코딩테스트 (12)
      • [루키스] C++ 자료구조 & 알고리즘 (32)
    • CS (69)
      • [널널한 개발자] CS 개론 (19)
      • [혼자 공부하는] 컴퓨터 구조 (16)
      • [혼자 공부하는] 운영체제 (18)
      • [널널한 개발자] 네트워크 (16)
    • 게임 그래픽스 (46)
      • [전북대] OpenGL (25)
      • [일지] DirectX (21)
    • 게임 엔진 - 언리얼 (123)
      • [코드조선] 언리얼 (53)
      • [코드조선] 언리얼 데디서버 (8)
      • [일지] 언리얼 (59)
      • [일지] 언리얼 (2) (3)
    • 게임 엔진 - 유니티 (14) N
      • [최적화] 유니티 (4)
      • [루키스] 유니티 (10) N
    • 게임 서버 (17)
    • 게임 수학 & 물리 (19)
      • 게임 수학 (12)
      • 게임 물리 (7)
    • GIT & GITHUB (4)
    • 영어 (18)
      • [The Outfit] 대본 공부 (11)
      • the others (7)
    • 그 외 (14)
      • In (5)
      • Out (5)
      • Review (4)

인기 글

최근 글

hELLO · Designed By 정상우.
C/[언어본색] C 기초

[언어 본색] #17 4장 - 포인터 변수 (2)

2021. 10. 1. 09:39

일반변수와 포인터변수
일반변수 : 값을 저장해야 할 경우 필요
포인터변수 : 변수의 주소를 저장해야 할 경우 (동적 할당 또는 6장 함수에서 다뤄짐)

  일반변수 포인터 변수 비고
선언 자료형 변수이름; 자료형 *포변수이름; & : 주소지정 연산자
* : 간접 연산자
값 할당 변수이름=값; 포변수이름=주소;
*포변수이름=값;
선언과 동시에 초기화 자료형 변수이름=값; 자료형 *포변수이름=주소;

예제를 통해 알아보자.

#include <iostream>
using namespace std;

int main()
{
	int a=100;;
	int *pa;

	pa=&a;

	cout << "a에 저장된 값 : " << a << endl;
	cout << "a의 주소 : "      << &a << endl;
	
	cout <<"******************************"<< endl;

	cout << "a에 저장된 값 : " << *pa << endl; //pa에 저장된 값이 가리키는 곳으로 이동(간접참조이고 direct로 접근하는 일반 변수와는 달리 한번더 참조하라는 간접 연산자)
	cout << "a의 주소 : "      << pa << endl;
     
            a = 999;
            cout << "a에 저장된 값 : " << *pa << endl; //a의 값이 바뀐거지 pa(주소)는 그대로이다.
            cout << "a의 주소 : "      << pa << endl;

	return 0;
}

 

배열1
- 변수(일반 변수, 포인터 변수)
하나의 기억 공간
예) 나이, 점수, 성별 등의 데이터를 저장
- 배열
연속적인 기억 공간
예) 30명의 총점을 저장, 세 과목의 성적을 저장
선언할 때 연속적으로 필요한 기억 공간의 개수를 표시

배열2
배열 선언 : 자료형, 배열이름, 크기
자료형   배열이름[크기];

배열 첨자는 0부터 시작
int score[3]; 의 경우  score[0], score[1], score[2]
char name[30];의 경우 name[0], name[1], …. , name[28], name[29]

 

배열3

배열이름 = 주소 // 포인터와 같은 원리임

아래 예제를 통해 알아보자.

#include <iostream>
using namespace std;

int main()
{
	int score[3]={99,88,100};
	char name[5];

	cout << "score[0]의 주소 : " << &score[0] << endl;
	cout << "score[1]의 주소 : " << &score[1] << endl;
	cout << "score[2]의 주소 : " << &score[2] << endl;

	cout << "******************************************" << endl;

	for (int i=0; i<3; i++)
		cout << "score[" << i << "]의 주소 : " << &score[i] << endl;

	cout << "******************************************" << endl;

	cout << "score[0]의 주소 : " << score << endl;
	cout << "score[1]의 주소 : " << score+1 << endl;
	cout << "score[2]의 주소 : " << score+2 << endl;

	cout << "******************************************" << endl;

	for (int i=0; i<3; i++)
		cout << "score[" << i << "]의 주소 : " << score+i << endl;

	cout << "******************************************" << endl;

	for (int i = 0; i < 5; i++)
		// cout << "name[" << i << "]의 주소 : " << &name[i] << endl;
		cout << "name[" << i << "]의 주소 : " << hex << (int)&name[i] << endl; // 형변환과 16진수로 출력하는 이유는 추후 문자열부분에서 설명

	return 0;
}

 

저작자표시 비영리 변경금지 (새창열림)

'C > [언어본색] C 기초' 카테고리의 다른 글

[언어 본색] #19 4장 - 문자열  (0) 2021.10.11
[언어 본색] #18 4장 - 배열  (0) 2021.10.01
[언어 본색] #16 4장 - 포인터 변수 (1)  (0) 2021.10.01
[언어 본색] #14 3장 - 반복문의 중복  (0) 2021.09.30
[언어 본색] #10 2장 - 논리형 (2)  (0) 2021.09.30
'C/[언어본색] C 기초' 카테고리의 다른 글
  • [언어 본색] #19 4장 - 문자열
  • [언어 본색] #18 4장 - 배열
  • [언어 본색] #16 4장 - 포인터 변수 (1)
  • [언어 본색] #14 3장 - 반복문의 중복
묻공러
묻공러
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.