이 영역을 누르면 첫 페이지로 이동
컴퓨터와 수학, 몽상 조금 블로그의 첫 페이지로 이동

컴퓨터와 수학, 몽상 조금

페이지 맨 위로 올라가기

컴퓨터와 수학, 몽상 조금

컴퓨터공학, 딥러닝, 수학 등을 다룹니다.

[2주차] 포인터 개요 및 복습

  • 2020.04.10 15:27
  • 학부 수업/C프로그래밍

2.포인터 개요 및 복습

포인터는 메모리에 변수가 저장된 주소를 가르키는 변수

포인터를 왜 쓰나

변수에 간접접근, 동적할당 등 고급 기능에 사용

주의사항

시스템 메모리의 앞부분에는 운영체제가 올라가 있어서 접근이 불가하다.(Permission 필요)

int* p = 8;

그러므로 위와 같은 코드로 메모리에 접근하면 오류가 난다.

포인터 배열

int arr = [1,2,3];
printf("%d", *arr);

배열을 대괄호없이 포인터로써 위와 같이 사용할 수 있다.

또한, 이 값에 정수 n을 더하면 변수의 n+1 번째 값의 주솟값이 된다.

포인터 배열 활용

printf("%d", *p);
p++;

뭔가 코드가 안 이쁘다.

printf("%d", *p++);

이런식으로 하면 코드가 섹시해진다.

그런데 가끔 아래처럼 짜는 유사 너드가 있다.

printf("%d", *(p)++);

이러면 값이 1 증가되고 포인터는 가만있으니까 이렇게 짜지 말자..

포인터로 클린 코딩하는 걸 자세히 보고 싶으면 포인터배열활용.c을 보라.

포인터 인자와 배열 주소

배열은 항상 간접 접근(Call by reference)을 하기 때문에, 주의해야 한다.

아래 코드와 결과를 참고하시오.

void init(int ar[])
{
    ar[0] = ar[1] = 0;
}

int main()
{
    int ar[3] = {1,2,3};
    init(ar);
    printf("%d %d %d",ar,ar+1,ar+2);
}
>>> 0 0 3

포인터 배열

포인터를 아래와 같이 배열에 담을 수도 있다.

int* pi[5];

다중 포인터

int a = 3;
int *p = &a;
int **pofp = &p;

printf("%d", *pofp);
3

위와 같이 포인터 변수의 메모리 주소를 갖는 변수를 선언할 수 있다.

다차원 텐서나 고급 자료구조에서 활용할 수 있다.

'학부 수업 > C프로그래밍' 카테고리의 다른 글

[6주차] 연산자 함수, 자료형 심화  (0) 2020.04.10
[5주차] 동적 할당  (0) 2020.04.10
[4주차] 구조체  (0) 2020.04.10
[3주차] 문자열  (0) 2020.04.10
세종대학교 고급 C 프로그래밍 강의노트  (2) 2020.04.10

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [5주차] 동적 할당

    [5주차] 동적 할당

    2020.04.10
  • [4주차] 구조체

    [4주차] 구조체

    2020.04.10
  • [3주차] 문자열

    [3주차] 문자열

    2020.04.10
  • 세종대학교 고급 C 프로그래밍 강의노트

    세종대학교 고급 C 프로그래밍 강의노트

    2020.04.10
다른 글 더 둘러보기

정보

컴퓨터와 수학, 몽상 조금 블로그의 첫 페이지로 이동

컴퓨터와 수학, 몽상 조금

  • 컴퓨터와 수학, 몽상 조금의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 태그
  • 방명록

카테고리

  • 분류 전체보기 (282)
    • Tech Trend (3)
    • Deep Learning (77)
      • 공부 노트 (21)
      • 논문 리뷰 (44)
      • 논문 스키밍 (1)
      • 영상처리 (11)
    • Engineering (3)
      • Tips (2)
      • Experiences (1)
    • Blog (48)
      • 회고 & 계획 (20)
      • 내 이야기 (9)
      • 리뷰 (3)
      • 군대에 간 공돌이 (10)
      • ML엔지니어 취업 도전기 (1)
      • 여행 (4)
    • 학부 수업 (141)
      • 머신러닝 (16)
      • C프로그래밍 (8)
      • 자료구조 (11)
      • 알고리즘 (17)
      • 디지털시스템 (25)
      • 컴퓨터구조 (11)
      • 확률과 통계 (21)
      • 선형대수학 (14)
      • 이산수학 (18)
      • 데이터시각화 (0)
    • 강의 (9)
      • 딥러닝 기초 (7)
      • Python (2)

공지사항

인기 글

정보

백지오의 컴퓨터와 수학, 몽상 조금

컴퓨터와 수학, 몽상 조금

백지오

블로그 구독하기

  • 구독하기
  • RSS 피드

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기

나의 외부 링크

  • profile
  • github
  • linkedin

방문자

  • 전체 방문자
  • 오늘
  • 어제
Powered by Tistory / Kakao. © 백지오. Designed by Fraccino.

티스토리툴바