int fkt (int &i) { return i ++; }i ++ 구문을 사용하여 int i를 하나 이상 증가시킬 수 있습니까?
int main()
{
int i = 5;
printf("%d ", fkt(i));
printf("%d ", fkt(i));
printf("%d ", fkt(i));
}
지문 '5 6 7'. 이렇게 '5 7 9'를 인쇄하고 싶다면 fkt()에 임시 변수가없는 비슷한 방식으로 할 수 있습니까? 내가 필요가 무엇 무엇인지, 그것을 돌려 그럼 난, 즉
return i+=2
또는
return i, i+=2;
첫번째 증가 모두 같은 것을 (A 임시 변수는 소폭? 바로, 효율성을 감소 것)합니다.
감사
편집 : 주된 이유는, 내가 함수에을하고 FKT는 함수 포인터되기 때문에하지 벗어납니다. 원래 함수는 i와 다른 것을 할 것입니다. 나는 그저 {int temp = i; i + = 2; return temp;}는 {return i ++;}만큼 좋지 않습니다.
printf는 상관하지 않습니다. 이는 결과 사용에 대한 예시 일뿐입니다.
EDIT2 : 와우, 전통적인 게시판보다 채팅이 더 많습니다. 모든 답변에 감사드립니다. 내 fkt 실제로이 있습니다. get_it_1를 들어
unsigned int (*get_it)(char*&);
unsigned int get_it_1(char* &s)
{return *((unsigned char*) s++);}
unsigned int get_it_2(char* &s)
{unsigned int tmp = *((unsigned short int*) s); s += 2; return tmp;}
unsigned int get_it_4(char* &s)
{unsigned int tmp = *((unsigned int*) s); s += 4; return tmp;}
, 그것은 내가 ...
을 미래에 더 많은 배경을 제공하려고합니다 ... 너무 간단하다 : 어떤 조건에 따라, 나도 get_it_1, get_it_2, 또는 get_it_4로 get_it을 정의합니다
printf ("% d", fkt (fkt (i)))? –
이러한 효율성 고려 사항을 무시하고 작동하는 솔루션을 사용하십시오. – Philipp
나는 printf가 i + = 2보다 천천히 느리다는 것을 알고 싶다. –