C: (pointer) 배열 변수 와 포인터 의 차이
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h> int main( int argc, const char * argv[]) { char s[] = "hello world!" ; char *t = s; printf ( "sizeof(s) is %li
" , sizeof (s)); printf ( "sizeof(t) is %li
" , sizeof (t)); return 0; } output:
sizeof(s) is 13
sizeof(t) is 8
2. char s [] 중의 & s 는 s 와 같 고 char s [] 의 주 소 를 취한 다.
한편, char * t = s 의 & t 는 t 와 같 지 않 고 t 포인터 변수 자체 의 주 소 를 가 져 옵 니 다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h> int main( int argc, const char * argv[]) { char s[] = "hello world!" ; char *t = s; // &s == s; What is the address of the s array? printf ( "&s is %p
" , &s); // &t != t; What is the address of the t variable? printf ( "&t is %p
" , &t); return 0; } output:
&s is 0x7fff5fbffa2b
&t is 0x7fff5fbffa20
3. 포인터, 메모리 가 공간 을 분배 하기 때문에 포인터 가 값 을 다시 할당 할 수 있 습 니 다.배열 변수 와 배열 요소 의 공용 주 소 를 다시 할당 하면 컴 파일 오류 가 발생 합 니 다.
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h> int main( int argc, const char * argv[]) { char s[] = "hello world!" ; char *t = s; s = t; // Error: Array type is not assignable return 0; } C 프로 그래 밍 iOS 개발
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.