C++의 포인터 배열 과 포인터 의 지침 을 깊이 분석 합 니 다.
형식:1 차원 포인터 배열 의 정의 형식 은 int[유형 명]*p[배열 명][4][배열 길이]이다.[]비*우선 순위 가 높 기 때문에 p 는 먼저[4]와 결합 하여 p[4]의 배열 형식 을 형성한다.그 다음 에 p 앞의'*'와 결합 하면'*'는 이 배열 이 포인터 유형 임 을 나타 내 고 모든 배열 요 소 는 하나의 포인터 변수 에 해당 하 며 성형 변 수 를 가리 킬 수 있다.
메모:int(*p)[4]형식 으로 쓸 수 없습니다.이것 은 1 차원 배열 을 가리 키 는 포인터 변 수 를 말 합 니 다.포인터 배열 의 각 요 소 를 사용 하여 문자열 의 처 리 를 더욱 원활 하 게 합 니 다.
프로그램 1.1
#include<iostream>
using namespace std;
int main(){
void sort(char *p[],int n);
void print(char *p[],int n);
char *name[]={"C","C++","PHP","ASP","ASP.NET","C#","JAVA","BASIC","PASCAL","COBOL"};
int n=10;
sort(name,n);
print(name,n);
return 0;
}
void sort(char *p[],int n){
char *temp;
int i,j,k;
for(i=0;i<n;i++){
k=i;
for(j=i;j<n;j++){
if(strcmp(p[j],p[k])<0){
k=j;
}
}
if(k!=i){
temp=p[k];
p[k]=p[i];
p[i]=temp;
}
}
}
void print(char *p[],int n){
int i;
for(i=0;i<n;i++){
cout<<p[i]<<endl;
}
}
분석:main 함수 에서 포인터 배열 name 을 정 의 했 습 니 다.10 개의 요 소 는 문자열
"C","C++","PHP","ASP","ASP.NET","C#","JAVA","BASIC","PASCAL","COBOL"
의 시작 주소 입 니 다.그 다음 에 배열 의 첫 번 째 요소 의 주 소 를 함수 sort 의 p 배열 에 전달 하기 때문에 인삼 p 와 실제 인삼 name 은 같은 배열 을 가리 키 고 있 습 니 다.그리고 선택 법 으로 배열 을 정렬 했다.print 함수 의 역할 은 각 문자열 을 출력 하 는 것 입 니 다.p[0]~p[9]는 각각 각 문자열 의 첫 번 째 주소 입 니 다.print 함 수 는 포인터 의 지침 을 가리 키 는 형식 으로 바 꿀 수 있 습 니 다.
정의:포인터 데 이 터 를 가리 키 는 지침 은 포인터 의 지침 입 니 다.예 를 들 어 프로그램 1.1 의 main 함수 에서 정 의 된 포인터 배열 name[10],
void print(char *p[],int n){
char *q=p[0];
int i=0;
while(i<n){
q=*(p+i++);
cout<<q<<endl;
}
}
포인터 배열 의 첫 번 째 포인터 요소 의 주 소 를 가리 키 는 변수 p 에 부여 하 는 것 을 의미 합 니 다.프로그램 1.2
char * *p=name
분석:p 는 지침 을 가리 키 는 지침,즉 저 장 된 name[2]의 주소 값 입 니 다.*p 는 포인터,즉 name[2]의 값(포인터 배열 의 요소)입 니 다.**p 는 포인터 가 가리 키 는 데이터 의 값 입 니 다.p 는 char 형식의 데 이 터 를 가리 키 기 때문에 첫 번 째 문 자 를 출력 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
포인터 기반 데이터 형식 및 포인터 연산 소결int*p=NULL 도 주의해 야 합 니 다.int*p;*p=NULL;의 차이 점:int*p=NULL 은 성형 변 수 를 가리 키 는 지침 을 정의 하고 이 지침 을 초기 화 하 며 초기 값 을 NULL 로 부여 합...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.