둘 다 &이 긴 정수를 시작한다고 선언합니까?"long int num = 24;" 및 "int num = 24L;" 똑같은 일을합니까?
나는이 포럼에 대해 너무 기본적인 질문이 아니길 바란다. 위의 두 문장 모두 똑같은 것을 달성했는지, 즉 긴 정수 변수 num을 선언하고이를 24로 초기화하는지 알고 싶다. 감사합니다.
둘 다 &이 긴 정수를 시작한다고 선언합니까?"long int num = 24;" 및 "int num = 24L;" 똑같은 일을합니까?
나는이 포럼에 대해 너무 기본적인 질문이 아니길 바란다. 위의 두 문장 모두 똑같은 것을 달성했는지, 즉 긴 정수 변수 num을 선언하고이를 24로 초기화하는지 알고 싶다. 감사합니다.
아니요, long int
은 long int를 선언하고 int
은 int 변수를 선언합니다. 변수의 유형은 "초기화 된"값 (더 정확하게는에 할당 된 값)에 의존하지 않습니다. 따라서 형식이 long int
과 int
인 경우에만 두 선언이 동일합니다. 변수의 입력 변수의 타입에 의해 정의된다
두 번째 문장에서 24 이후에 접미사 L을 알지 못했을 까봐 두렵습니다. –
나는했다. 그러나 접미사는 변수의 유형에 영향을 미치지 않습니다. – JohnB
"int num = 24L"이라고 가정하면 시스템이 size (int) 바이트 수 대신 sizeof (long) 바이트 수를 저장하도록 강제합니다 (다른 경우). 그러면 정수 포인터를 사용합니다. 역 참조 또는 long 정수 포인터? –
호은 그 왼쪽에 타입에 의해 정의된다 :
long int num
긴 INT와 같은 변수를 선언 num
;int num
은 변수 num
을 int로 선언합니다.한편, 등호의 오른쪽도 독립적으로 정의됩니다.
24
은 int입니다. 24L
오른편이다 (이 경우 24
또는 24L
) 그런 강제 될 수있다 (즉 변경)이 경우, 변수의 (좌측에 맞게 num
)이지만, 결코 다른 방법 라운드.
long int num = 24;
과int num = 24L
이 같은가요?
그들은 다릅니다.
첫 번째 변수는 long int
변수를 "생성"하고 할당 전에 int
값 24를 long int
유형으로 암시 적으로 변환합니다. 두 번째 변수는 int
유형의 변수를 "생성"하고 할당 전에 long int
값 24를 int
유형으로 암시 적으로 변환합니다.
변수의 유형과 변수 초기화에 사용되는 상수 유형을 구별해야합니다.
는첫 번째 선언은 long int
변수를 선언하고 (당신이 long int
-24
상수 정수를 캐스팅 한 후 무엇을 얻을입니다) 값 24L
에 초기화합니다. 두 번째 선언은 int
변수를 선언하고 값 24
에 초기화 (당신이 int
에 24L
일정한 긴 정수를 캐스팅 한 후 무엇을 얻을이다.) 정확히
하지 않습니다.long int
및 int
은 보장되지는 않지만 크기가 서로 다른 것으로 가정합니다. 24
는 int 형이기 때문에
long int num = 24;
이 그 long int
승진 (암묵적으로)입니다, 안전합니다.
int num = 24L;
이것은 일반적으로 안전하지 않습니다. 24L
은 long int
을 정의합니다. 즉, "잘 렸습니다"는 int
이고 sizeof(int)
이면 문제가 될 수 있습니다.
왜 "IN 일반"과 "할 수있는"? 이 경우 두 가지가 같고 안전합니다.
x
큰 숫자가
int num = xL;
, 즉 int
에 long int
에 들어갈 수는 없지만 : 그러나 가정 그런 짓을? 그런 다음 오버플로가 발생했습니다.
"얇게 썬 것 (sliced)"대신에 "잘린 (truncated)"이라고 말하는 것이 더 나을 수도 있습니다. – jszakmeister
@jszakmeister - 감사합니다. '얇게 썬 것'이 올바른 단어가 아니라는 것을 알고 있습니다. 그래서 그것을 따옴표로 묶었습니다. –
그들은 동일한 표현을 메모리에 생성 할 수 있습니다 ... 표준에 따르면 'long int'와 'int'가 같기 때문에 (플랫폼에 따라 다릅니다!) 보장 할 수 없습니다. – Yahia
@Yahia'long int'와'int'는 결코 같지 않습니다 (표현과 정렬 요구 사항이 같을 수도 있지만 ...). – pmg
@pmg 당신 말이 맞아요, 그게 내가 의미하는 바 ... 나는 내 말씨가 그 것을 반영하도록 바꿨습니다. – Yahia