|
볼랜드 C++ 3.1은 제 컴에 안깔려 있어서 모르겠네요.
하여튼 후속 버전인 C++빌더에서는 이상없이 잘됩니다.
그리고 프로그램이 정확한 의미를 가지려면
포인터 변수를 p 하나만 쓰는 것보다는
다음과 같이 두개를 써야 합니다.
int main(int argc, char* argv[])
{
int a[10], i, *p1, *p2;
if ((p1 = a)==(p2 = &a[0]))
printf("%d", p1);
else
printf("다르다");
return 0;
}
씨_java 님이 쓰신 글 :
: 저가 확인차 간단한 프로그램을 작성해서 실행하는데,
: 볼랜드C++ 3.1에서 컴파일(경고 1개)해서 실행할려고 하니
: 실행이 안되네요.오류가 없다고 생각해서 다시 gcc에서 컴파일
: 해서 실행하니 오류메세지 없이 잘됩니다.
:
: #include <stdio.h>
: #define N 10
:
: int main()
: {
: int a[N], i, *p;
: if ((p=a)==(p=&a[0]))
: {
: printf("%d",p);
: }
: else
: {
: printf("다르다");
: }
: }
:
: 경고메세지:'p' is assigned a value that is never used
: 이 메세지를 받았습니다.
:
: *왜 볼랜드에서는 실행이 안되고, gcc에서는 실행이 되는거죠?
: 버전문제...컴파일러....설정옵션문제 등을 생각해봤는데 답이 안나옵니다.
: 가르침 부탁드립니다.
|