C 언어 포인터 시리즈 (2): 포인터 와 메모리 의 관 계 를 정말 이해 하 십 니까?
중국의 위인 이 말 한 적 이 있다.
마음 만 먹 으 면 세상 에 못 할 일이 없다!
C 언어 지침 이 투철 하 게 이해 되 지 않 는 것 은 모두 네가 공 을 들 였 는 지 안 들 였 는 지 에 달 려 있다. 그러나 더 많은 것 은 적당 한 도입부 가 있 는 지 를 보고 그 에 대한 인식 을 계몽 해 야 한다.
포인터 변수 유형 은 어떤 것 이 있 습 니까?
알다 시 피 C 언어의 기본 변수 유형 은 정형 변수, 부동 소수점 변수 와 문자 형 변수 가 있다.
기본 변수 유형
포인터 변수 형식
정형 (int)
정형 (int *)
부동 소수점 형 (float)
부동 소수점 형 (float *)
이중 정밀도 (double)
이중 정밀도 (double *)
문자 형식 (char)
문자 형 (char *)
위 에서 가장 자주 사용 하 는 몇 가지 포인터 변수 유형 을 열거 하여 저장 할 수 있 는 메모리 주소 의 중간 값 에 대응 하 는 유형 을 열거 하 였 다.
예 를 들 어 int * 형 포인터 변 수 는 int 형식의 변수의 메모리 주소 만 저장 할 수 있 습 니 다.C 언어 지침 은 바로 문 당호 대 를 중시 하 는 것 입 니 다. 학생 여러분, 그 달 에 자꾸 붉 은 선 을 끌 지 마 세 요.
C 언어 는 어떻게 포인터 변 수 를 설명 합 니까?
C 언어 에서 포인터 의 일반 성명 형식 은 다음 과 같 습 니 다.
[포인터 변수 종류] *[포인터 변수 이름];
int * 형 포인터 변수 pt 를 설명 하려 면 다음 코드 가 있 습 니 다.
int *pt;
이 를 통 해 다른 유형의 포인터 변 수 는 더 이상 군말 하지 않 는 다.
C 언어 포인터 사용
지침 을 사용 하기 위해 c 언어 는 두 개의 특별한 연산 자 를 제공 합 니 다.
포인터 변 수 는 변수의 주 소 를 저장 하기 때문에 포인터 초기 화 는 특정한 변수의 주 소 를 부여 하 는 것 입 니 다.이 과정 은 주소 부 & 의 도움 이 필요 합 니 다.
다음 프로그램 과 같이:
int x=5;
int *p=&x;
// x p
다른 형식 으로 쓸 수도 있다.
int x=5,*p=&x;
위의 두 단락 의 코드 효 과 는 목적지 와 같다.
p 의 값 을 출력 할 때 값 을 추출 해 야 합 니 다 *:
printf("%d",*p);
깊이 공부 하 다
다음 프로그램 코드 가 있다 고 가정 합 니 다.
int a=3;
int b=5;
int *p1=&a;
int *p2=&b;
p1=p2;
(1) 두 개의 정형 변 수 를 설명 하고 a 의 값 은 3 이 며 b 의 값 은 5 이다.
정형 수치 3
변수 a
정형 수치 5
변수 b
(2) 변수 a, b 의 메모리 주 소 를 각각 p1 과 p2 에 저장 합 니 다.
변수 a
포인터
변수 b
포인터
이때 p1 은 a 를 가리 키 고 p2 는 b 를 가리킨다
변수 a 포인터 p1 메모리 주 소 를 p1 포인터 에 게 a 변수 a 포인터 p1 을 가리 킵 니 다.
변수 b 포인터 p 2 메모리 주 소 를 p2 포인터 에 b 변수 b 포인터 p 2 를 가리 킵 니 다.
(3) p1 이 가리 키 는 주 소 를 p2 가 가리 키 는 주소 로 변경
p1: F74EC7F7
p2: F74EC7F9
여기 서 모두 가 약간 현혹 되 었 을 수도 있 으 니 내 말 을 들 어 라.
우 리 는 여기에서 두 문장 p1 = p2 를 구분 해 야 한다.여기 에는 수치 부호 가 없습니다. 둘 다 포인터 자체 입 니 다. p1 이 가리 키 는 메모리 주 소 를 p2 가 가리 키 는 메모리 주소 * p1 = * p2 로 변경 합 니 다.값 부 * 가 있 습 니 다. p1 이 메모리 주 소 를 가리 키 는 값 을 p2 가 메모리 주 소 를 가리 키 는 값 으로 변경 하 는 것 을 의미 합 니 다.
p1 = p2 해상도
실행 되 지 않 은 전:
p1
F74EC7F7
p2
F74EC7F9
이 문 구 를 실행 하면:
F74EC7F7
p1
F74EC7F9
p2
* p1 = * p2 해상도
실행 되 지 않 은 전:
p1
F74EC7F7
3
p2
F74EC7F9
5
이 문 구 를 실행 한 후:
p1
F74EC7F7
5
p2
F74EC7F9
5
↓↓↓↓↓
p1
F74EC7F7
5
p2
F74EC7F9
5
이제 알 겠 어 요?아니 야, 괜찮아, 아직 3 장 이 있어!
(미 완성 계속...)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java 프로그램과 C 언어의 차이에 대한 간단한 분석C 언어를 배운 우리에게 자바는 비교적 간단한 프로그래밍 언어라고 할 수 있다. Java 언어에서는 모든 변수를 먼저 선언해야 사용할 수 있습니다. 그렇지 않으면 프로그램이 실행될 수 없습니다.하나의 C 언어는 몇 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.