하나
int a = -10;
printf("%d\n", sizeof a);//这样写行不行?
printf("%d\n", sizeof int);//这样写行不行?
sizeof a가 정확합니다
sizeof int 오류 0029, sizeof 연산자의 매개 변수는 표현식이어야합니다.
두
//代码3-非法表达式
int main()
{
int i = 10;
i = i-- - --i *(i = -3) * i++ + ++i;
printf("i = %d\n", i);
return 0;
}
값 | 번역자 |
---|---|
-128 | Tandy 6000 제닉스 3.2 |
-95 | Think C 5.02 (Macintosh) |
-86 | RM PowerPC AIX 3.2.5 |
-85 | Sun Sparc cc (K & C 컴파일 문제) |
-63 | gcc, HP_UX 9.0, Power C 2.0.0 |
4 | Sun Sparc acc (K & C 컴파일러) |
21 | 터보 C / C ++ 4.5 |
22 | FreeBSD 2.1R |
30 | 12 월 알파 0SF1 2.0 |
36 | 12 월 VAX / VMS |
42 | 마이크로 소프트 C 5.1 |
i = i-- - --i *(i = -3) * i++ + ++i;
다른 컴파일러에서 얻은 값도 다릅니다.
세
//代码4
#include <stdio.h>s
int fun()
{
static int count = 1;
return ++count;
}
int main()
{
int answer;
answer = fun() - fun() * fun();
printf("%d\n", answer);//输出多少?
return 0;
}
확실하지 않지만 대부분의 컴파일러에서 얻은 결과는 동일하지만 함수 호출 순서를 결정할 수 없습니다.
네
//代码5
#include <stdio.h>
int main()
{
int i = 1;
int ret = (++i) + (++i) + (++i);
printf("%d\n", ret);
printf("%d\n", i);
return 0;
}
Linux : 10 4
비주얼 스튜디오 : 12 4
이 코드에서 첫 번째 +가 실행될 때 세 번째 ++의 실행 여부는 불확실합니다. 연산자의 우선 순위와 연관성은 첫 번째 + 및 세 번째 프리앰블 ++의 순서를 결정할 수 없기 때문입니다.