2013-10-18 2 views
-3
int a(int p){ 

return ++p; 
}; 

int main(){ 
a(???); 
return 0; 
}; 

괄호 안에 무엇을 써야합니까? 음 .... 예제? 전화 할 때 새로운 이름을 올리는 목적은 무엇입니까?함수 변수/이름 정보 호출

(나는 그것이 아주 일반적인 질문 인 것을 정확히 설명하는 방법을 잘 모르겠다.)? 설명이 좋을 것이다. 예를 들어 "시간", "가격"으로 쓸 수 있다는 것을 알지만 왜 P를 사용하지 않는 이유는 무엇입니까?

+0

'무효 main' 법적 C 아니다 ++. 반환 유형은'int'이어야합니다. – chris

+0

또한 함수 내에서 전역 변수를 호출 할 때 ... 왜 스토리지 클래스가 필요합니까? 자동 저장 클래스는 자동 저장 기간을 제공합니다. 정적 저장 기간과 프로그램 범위가있는 이름이 저장 클래스를 필요로하는 이유는 무엇입니까? visualbasic 디버거에서 – user2892942

+0

그것은 아무 문제도 보여주지 않습니까? 내가 프로그램을 컴파일하면 문제가 될거야? – user2892942

답변

0

코드에서 p이 함수 호출 지점에 있지 않으므로 p을 사용할 수 없습니다. pa()에 국한됩니다.

int a(int p){ 
    return ++p; 
}; 

int main(void) { 
    int p = 4; 
    int p_plus_one = a(p); 
    return 0; 
}; 

그들은 모두 자신의 범위에 지역, 그리고 충돌하지 않는 있기 때문에 : 당신이 뭔가를 한 경우에

당신은 p를 사용할 수 있습니다. 당신이

당신이 함수에 선택의 integer 변수를 전달할 수있는 함수에 매개 변수를 전달하는 새로운 이름을 사용해야 같은

+0

매개 변수에 void를 추가해야합니까, 아니면 그냥 비워 둘 수 있습니까? – user2892942

+0

C++에서'()'와'(void)'는이 문맥에서 동등합니다. 이것은 맛의 문제입니다. –

+0

또한 함수 내에서 전역 변수를 호출 할 때 ... 왜 스토리지 클래스가 필요합니까? 자동 저장 클래스는 자동 저장 기간을 제공합니다. 정적 저장 기간과 프로그램 범위가있는 이름이 저장 클래스를 필요로하는 이유는 무엇입니까? – user2892942

0

아무것도 없다 a()

예 :

변수가 p 인 경우 다음과 같이 선언 할 수 있습니다.

int main(){ 
int p = 50 ; //some integer value (it's necessary that the variable should be assigned a value) 
a(p); 
return 0; 
}; 

그렇지 않으면 변수 time 이런 식으로 선언이있는 경우, 당신은 또한 그것을 전달할 수 있습니다

int main(){ 
int time = 60 ; //some integer value (it's necessary that the variable should be assigned a value) 
a(time); 
return 0; 
}; 
+0

아마 변수를 표준 라이브러리 함수와 같은 이름으로 제공하지 않는 것이 가장 좋습니다. –

+0

그래 ..하지만 나는 그의 의심을 분명히하기 위해 @PaulGriffiths –

+0

그 값으로 전달되는 것으로 간주 될까? 물론 – user2892942