c언어 구조체 안에 있는 변수는 비교를 못하나요?
예를 들어
typedef struct a
{
int a_1
int a_2
int a_3
}A;
A* aa = NULL;
라는 구조체가 있다고 가정하고 malloc이랑 기타 이것저것 다 했다고 가정하고 하겠습니다.
(aa+0).a_1에 "1"이 들어가있고
(aa+1).a_1에 "2"가 들어가있다고 할때
if((aa+0).a_1 < (aa+1).a_1)
printf("true");
가 가능한가요?
55글자 더 채워주세요.
2개의 답변이 있어요!
아래처럼 비교하면 되지 않을까 합니다.
#include <stdio.h> #include <string.h> struct A { int a_1; int a_2; int a_3; }; int main() { struct A a1; struct A a2; a1.a_1 = 40; a2.a_1 = 30; if (a1.a_1 > a2.a_1) { printf("a1가 더 크다 "); } else { printf("a2가 더 크다 "); } return 0; }가능합니다. 그런데 포인터 주소에 대한 접근 -> 이라던지 이런것만 설정 잘해주시면 문법적으로는 오류 없어 보이네요.
구조체 변수 대입 및 비교에 관한 블로그 글입니다. 참고해서 보시면 좋을 듯합니다.
결국에는 구조체 안에 변수도 일반 변수와 똑같은 변수가 되는 것이죠. 단지 구조체 안에 있기 때문에 접근하기 위해서는 .과 포인터인 경우에는 -> 으로 접근하는 것이고죠.