C 언어 - 포인터 테마 (2)
char * a = "zhoubofen";*a ='a'----- 틀렸습니다.수정할 수 없습니다.
#include
#include
int main(int argc, const char *argv[])
{
char a[] = "zh";
char * p ;
char * q = "eg"; // q
printf("%s \r
",q);
p = a;// a
*p = 'a'; // a a
printf("%s \r
",q); // q
printf("%d \r
",strlen(p)); // p
printf("%s \r
",p);// p
return 0;
}
출력 결과:eg eg 2ah
2. 포인터 그룹
포인터 배열의 일반 형식: * []
포인터 그룹 이름은 이 포인터 그룹의 시작 주소를 표시합니다.
#include
#include
int main(int argc, const char *argv[])
{
int a[2][3] = {{1,2,4},{5,6,7}};
int *p[2];
int i =0 ;
p[1] = a[0]; //
p[0] = a[1];
for(i=0;i<3;i++)
printf("%p %d \r
",p[0]+i,*(p[0]+i));
for(i=0;i<3;i++)
printf("%p %d \r
",p[1]+i,*(p[1]+i));
return 0;
}
출력: 0xbfedce24 5 0xbfedce28 6 0xbfedce2c 7 0xbfedce18 1 0xbfedce1c 2 0xbfedce20 4
결론: 포인터 그룹에 저장된 것은 주소이고 그룹의 모든 요소는 포인터 변수이다.
2차원 그룹은 여러 개의 1차원 그룹으로 구성된 것으로 볼 수 있으며 2차원 그룹의 줄 주소 a와 열 주소 a[0]를 직접 바늘 그룹에 넣을 수 있다.
예: int*p[2];int a[3] ;p+1은 p[1]을 가리킨다.p[1] = a인 경우*(p+1)+2와 p[1]+2는 모두 a[2]를 가리킨다.
제목: 2차원 그룹의 모든 원소의 합을 구하려면 바늘 그룹을 사용하십시오.
1. 포인터 배열이 차지하는 공간을 계산하는 방법. ------int * q[3] sizeof(q) == 12 Bety;
2, 포인터 그룹 이름 더하기 1, 몇 바이트 이동.----------------- 포인터 배열에 포인터(주소)가 놓여 있으면 이동하는 것은 모두 4바이트입니다.
3. 포인터 배열 이름은 어떤 포인터에 해당한다. ------------예를 들어 int*p[2]; int * *q ; q = p ;
다중 포인터
처리 데이터를 가리키는 바늘 변수를 일급 바늘 변수라고 하는데 일급 바늘 변수라고 약칭한다.
한편, 1급 지침 변수를 가리키는 지침 변수를 2급 지침 변수라고 하는데 약칭 2급 지침이라고 한다.
q 저장된 변수 m의 주소, *p는 변수 m의 데이터를 가리킨다.p는 바늘 변수 q의 주소를 저장하고 *p는 바늘 변수 q의 데이터를 가리키며 q의 데이터는 변수 m의 주소이며 **p는 변수 m의 데이터를 가리킨다.
주: 다단계 지침은 편폭이 많지 않지만 절대 간단하기 때문이 아니다. 주로 기초로 하고 이해에 중심을 두어야 한다. 처음 접촉할 때 많이 쓰지 않고 대부분이 일급 지침으로 대체할 수 있다.
4.void 포인터 1급const
1. void 포인터
일반 형식:void*
제목: 보이드 포인터를 이용하여 1차원 그룹을 훑어봅니다.
#include
int main(int argc, const char *argv[])
{
int a[] = {1,2,4,5,6};
void * p ;
int n = 0;
int i = 0;
p = (void*)a ;
n = sizeof(a)/sizeof(int);
while(i
2. const 변수
일반 형식: const 변수 이름 = []
상량화 포인터 목표는 포인터를 통해 목표의 수치를 바꾸는 것을 제한하지만 저장된 주소 값은 수정할 수 있습니다.
예: const int* p;*p는 수정할 수 없지만 p는 변경할 수 있습니다.
ii, 상수 포인터 변수:*const[=]
예: int m;int* const p = &m ;p는 수정할 수 없지만 *p는 변경할 수 있습니다.
const 수식: 수식한 사람은 변경할 수 없습니다.
후어: 지침을 C언어의 영혼이라고 합니다. 지침을 제대로 배우지 못했습니다. 아무도 당신이 C언어를 익혔다고 믿지 않을 것입니다. 이 편은 지침의 몇 가지 기본 지식점을 진열할 수 밖에 없습니다. 주로 이런 지식점 뒤에 대량의 제목 실례를 연습해서 지침을 본능으로 만들었습니다. 화이팅!!!!!!!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 구현 천둥 제거 게임 상세 정보먼저 작은 메뉴를 표시하고 게임을 할지 여부를 선택하십시오.사용자가 종료를 선택하면 프로그램 실행이 끝나고, 사용자가 게임을 선택하면 지뢰 제거 위치 좌표를 입력하라는 메시지가 표시됩니다.사용자가 입력한 좌표가 바둑...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.