programing

C 여러 개의 단선 선언

newstyles 2023. 11. 5. 11:03

C 여러 개의 단선 선언

한 줄에 여러 변수를 표시한다고 선언하면 어떻게 됩니까? 예를 들어,

int x, y, z;

모두 인트입니다.문제는 다음 문장에서 y와 z가 무엇인가 하는 것입니다.

int* x, y, z;

모두 인트 포인터입니까?

오직.xint에 대한 포인터입니다.y그리고.z규칙적인 int 입니다.

이것은 몇몇 사람들을 흥분시키는 C 선언 구문의 한 측면입니다.C는 선언자의 개념을 사용하는데, 이 개념은 선언되는 사물의 이름과 함께 유형 지정자가 제공하지 않는 추가 유형 정보를 소개합니다.선언문에

int* x, y, z;

선언자들은.*x,y,그리고.z(둘 중 하나를 쓸 수 있는 것은 C 구문의 실수입니다.int* x아니면int *x, 그리고 이 질문은 제가 두 번째 스타일을 사용하는 것을 추천하는 몇 가지 이유 중 하나입니다.)의 강도.x,y,그리고.z형식 지정자에 의해 지정됩니다.int, 의 지시에 의할 때에x선언자에 의해 지정됩니다.*x(IOW, 표현식)*x활자가 있습니다int).

세 개체를 모두 포인터로 사용하려면 두 가지 선택 사항이 있습니다.포인터로 명시적으로 선언할 수 있습니다.

int *x, *y, *z;

또는 int 포인터에 대한 typedef를 만들 수 있습니다.

typedef int *iptr;
iptr x, y, z;

포인터를 선언할 때,*는 유형이 아닌 변수 이름의 일부입니다.

첫 문장에서:

int x, y, z;

그들은 모두ints.

그러나 두번째 것에서는:

int* x, y, z;

오직.x에 대한 포인터입니다.int.y그리고.z훤칠한ints.

만약 그들 모두가 그들을 위한 조언자가 되기를 원한다면,int필요한 작업:

int *x, *y, *z;

x만 int 포인터입니다.Y랑 Z는 그냥 int.세 가지 포인터를 원하는 경우:

int * x, * y, * z;

C에서 선언은 사용법을 모방한다는 것을 아는 것이 중요합니다.* 단항 연산자는 C에서 우 연관성이 있습니다.그래서 예를 들면.int *xx는 int (또는 int-star)에 대한 유형 포인터이며, inint x, x는 int형입니다.

다른 사람들도 언급했듯이,int* x, y, z;C 컴파일러는 x를 int-star로, y와 z를 정수로 선언합니다.

언급URL : https://stackoverflow.com/questions/3246804/c-multiple-single-line-declarations