이 영역을 누르면 첫 페이지로 이동
천천히 꾸준히 조용히 블로그의 첫 페이지로 이동

천천히 꾸준히 조용히

페이지 맨 위로 올라가기

천천히 꾸준히 조용히

천천히 꾸준히 조용히.. i3months 블로그

[C] 배열과 포인터

  • 2022.04.01 11:31
  • Programming Language/C
반응형

 

 

 

자바에서의 배열과 C에서의 배열은 성격이 좀 다르다.

 

 

일단, 배열을 선언한 변수 이름은 배열의 시작 주소를 의미하는 포인터이다. ( arr = &arr[0] )

자바에서는 arr을 객체로 저장해 arr자체로는 뭐 할 수 있는게 많이 없지만, C에서는 그 자체로도 의미하는 바가 있다.

 

그러면, 변수명이 배열의 시작 주소를 의미한다고 했으니.. 특정 주소를 할당할 수도 있지 않을까? 라고 생각할 수도 있지만, 할당은 불가능하다.

 

포인터변수와 배열의 변수명은 굉장히 유사하지만, 배열의 변수명에다가 값을 새롭게 할당할 수는 없다. (읽기는 가능)

 

int main()
{
	int arr[3] = {0, 1, 2};
	arr[0]++;
	printf("%d \n", *arr); // 1
	printf("%d \n", arr[0]); // 1
	
}

 

*연산을 통해 값을 가져올 수 있다.  *arr과 arr[0]은 같은 값을 나타낸다.

 

값의 할당 말고는 포인터변수와 동일하다고 이해하자. (선언되고 메모리가 확보된 다음에는 절대로 값이 변하지 않는다)

즉, 배열 이름은 상수임.

 

 

 

 

배열 이름을 포인터로 쓸 수 있으니, 포인터 변수를 배열로 사용할 수 있지 않을까?

 

맞다. 위와 같이 포인터 변수에 배열의 위치를 선언해 주면, 포인터 변수를 배열로 사용할 수 있다.

 

배열 말고 정수 변수를 &연산해서 포인터 변수에 넣어준다고 해도 ptr[0]처럼 접근할 수는 있지만, 의도한 결과를 얻기는 힘들다. (그 위치에 어떤 값이 있는지 모른다!)

 

 

반응형

'Programming Language > C' 카테고리의 다른 글

[C] 문자열과 포인터  (0) 2022.04.01
[C] 포인터 연산  (0) 2022.04.01
[C] 포인터  (0) 2022.03.28
[C] 문자열  (0) 2022.03.28
[C] 배열  (0) 2022.03.28

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [C] 문자열과 포인터

    [C] 문자열과 포인터

    2022.04.01
  • [C] 포인터 연산

    [C] 포인터 연산

    2022.04.01
  • [C] 포인터

    [C] 포인터

    2022.03.28
  • [C] 문자열

    [C] 문자열

    2022.03.28
다른 글 더 둘러보기

정보

천천히 꾸준히 조용히 블로그의 첫 페이지로 이동

천천히 꾸준히 조용히

  • 천천히 꾸준히 조용히의 첫 페이지로 이동

검색

방문자

  • 전체 방문자
  • 오늘
  • 어제

카테고리

  • 분류 전체보기 (679) N
    • Algorithm (205)
      • Data Structure (5)
      • Theory && Tip (33)
      • Baekjoon (166)
      • ALGOSPOT (1)
    • Spring (123)
      • Spring (28)
      • Spring Web MVC (20)
      • Spring Database (14)
      • Spring Boot (6)
      • Spring 3.1 (11)
      • Spring Batch (6)
      • Spring Security (16)
      • JPA (12)
      • Spring Data JPA (5)
      • QueryDSL (4)
      • eGovFramework (1)
    • Programming Language (74)
      • C (25)
      • C++ (12)
      • Java (19)
      • JavaScript (15)
      • Python (1)
      • PHP (2)
    • Computer Science (142)
      • Machine Learning (38)
      • Operating System (18)
      • Computer Network (28)
      • System Programming (22)
      • Universial Programming Lang.. (8)
      • Computer Architecture (4)
      • Compiler Design (11)
      • Computer Security (13)
    • Database (21)
      • Database (7)
      • MySQL (3)
      • Oracle (3)
      • Redis (5)
      • Elasticsearch (3)
    • DevOps (20)
      • Docker && Kubernetes (8)
      • Jenkins (4)
      • Amazon Web Service (8)
    • Mobile (28)
      • Android (21)
      • Flutter (7)
    • 💡 솔루션 (17)
    • 👥 모각코 (10)
    • 💬 기록 (8) N
    • 📚 공부 (6)
    • -------------- (25)

최근 글

나의 외부 링크

메뉴

  • 홈
반응형

정보

i3months의 천천히 꾸준히 조용히

천천히 꾸준히 조용히

i3months

블로그 구독하기

  • 구독하기
  • RSS 피드

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. Copyright © i3months.

티스토리툴바