C ++에서 배열을 반복하는 동안 추가 숫자

Rudra

다음 코드를 사용하여 포인터를 사용하여 정수 배열을 반복하려고합니다.

#include <iostream>

int main (int argc, char ** argv)
{
    int ar[] = {1,1,2,3,5,8,13,21,34,55};
    char s[] = "string";

    std::cout << "Print fibonacci until ten using pointers" << std::endl;
    for (int * p = ar; *p; p++)
    {
        std::cout << *p << std::endl;
    }

    //  for (char * cp = s; *cp; cp++)
    //      std::cout << "char is " << *cp << std::endl;

    return 0;
}

이 코드를 실행하면 모든 요소 10 개와 숫자 4196368을 얻습니다 . 그러나 두 번째 for 루프의 주석 처리를 제거하고 다시 실행하면 숫자가 사라집니다.

누군가 왜 이런 일이 발생하는지 설명 할 수 있습니까? 필요한 경우 코드는 64 비트 Linux 상자에서 컴파일됩니다.

궤도의 가벼움 레이스

당신은 운 좋게도 루프가 전혀 멈췄습니다. 당신은 당신의 전체 이웃을 날려 버릴 수 있습니다!

루프는 배열 반복을 종료하기 위해 "0"을 찾을 것으로 예상하지만 배열에 0이 없습니다. 따라서 루프는 신이 무엇을 알 때까지 배열의 끝을지나 계속 증가합니다. 실제 결과는 예측 가능하거나 유용하게 설명하기에는 너무 많은 실제 요인에 따라 달라집니다.

"null-termination"을 사용하여 int배열 을 반복하는 것이 매우 독특 하기 때문에 이것이 연습이라고 생각합니다 . 실제로는 다음과 같이 작성합니다.

for (auto x : ar)
    std::cout << x << '\n';
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

숫자에 1을 추가하는 것이 C ++에서 동시에 모든 것을 추가하는 것보다 반복적으로 느리나요?

분류에서Dev

C ++에서 배열 안에 모든 숫자 추가

분류에서Dev

배열 내에서 숫자가 반복되는 횟수, C ++

분류에서Dev

배열 내에서 숫자가 반복되는 횟수, C ++

분류에서Dev

JS-배열을 반복하고 if 문에 새 숫자 추가

분류에서Dev

배열에 반복하는 동안 클래스 추가

분류에서Dev

반복하는 동안 배열에 객체 추가

분류에서Dev

반복하는 동안 배열에 추가

분류에서Dev

Python은 목록 항목을 추가하는 동안 목록에 문자열을 추가합니다 (반복).

분류에서Dev

자바 특별한 쓰임새에 반복하는 동안 항목을 추가

분류에서Dev

문자열의 유효성을 검사하는 동안 문자열 배열에 문자열을 추가합니다. C ++

분류에서Dev

C : 함수에서 숫자 배열을 반환하는 방법

분류에서Dev

C #에서 숫자 왼쪽에 0을 추가하는 방법

분류에서Dev

fstream을 사용하여 C ++에서 파일을 읽는 동안 추가 문자열 표시

분류에서Dev

추가하는 동안 JSON을 문자열 배열로 병합

분류에서Dev

C에서 for 루프를 사용하여 배열에 숫자 추가

분류에서Dev

모든 숫자가 "자체"횟수만큼 복제되는 새 배열을 반환하는 배열 메서드

분류에서Dev

사용자 집합을 반복하고 C #에서 추가하는 방법

분류에서Dev

C에서 4 자 구조의 2D 배열을 복사하는 동안 memcpy 오류 분할 오류

분류에서Dev

특정 인덱스에서 부호없는 문자 배열에 64 비트 부동 소수점 숫자를 추가하는 방법 (C ++)

분류에서Dev

반복되는 문자열에 증가하는 숫자를 추가하는 Replace 메서드

분류에서Dev

iOS Swift : 사용자 정의 UITableView 셀에서 2D 배열을 업데이트하는 동안 반복되는 값 가져 오기

분류에서Dev

C ++에서 문자열 복사 작업을 수행하는 동안 오류가 발생했습니다.

분류에서Dev

C ++ : 문자열을 문자 배열로 복사하는 동안 문제가 발생했습니다.

분류에서Dev

문자열에서 문자가 반복되는 횟수를 찾고 반복되는 문자를 동적 숫자로 제거하십시오.

분류에서Dev

루프가 C ++에서 문자의 추가 반복을 추가하는 것을 어떻게 중지합니까?

분류에서Dev

자바 스크립트에서 문자열을 추가하는 동안 Proplem

분류에서Dev

C ++에서 길이가 다른 동적 2D 배열을 반복하는 방법

분류에서Dev

자바 스크립트에서 배열을 객체로 변환하는 동안 추가 속성을 추가하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    숫자에 1을 추가하는 것이 C ++에서 동시에 모든 것을 추가하는 것보다 반복적으로 느리나요?

  2. 2

    C ++에서 배열 안에 모든 숫자 추가

  3. 3

    배열 내에서 숫자가 반복되는 횟수, C ++

  4. 4

    배열 내에서 숫자가 반복되는 횟수, C ++

  5. 5

    JS-배열을 반복하고 if 문에 새 숫자 추가

  6. 6

    배열에 반복하는 동안 클래스 추가

  7. 7

    반복하는 동안 배열에 객체 추가

  8. 8

    반복하는 동안 배열에 추가

  9. 9

    Python은 목록 항목을 추가하는 동안 목록에 문자열을 추가합니다 (반복).

  10. 10

    자바 특별한 쓰임새에 반복하는 동안 항목을 추가

  11. 11

    문자열의 유효성을 검사하는 동안 문자열 배열에 문자열을 추가합니다. C ++

  12. 12

    C : 함수에서 숫자 배열을 반환하는 방법

  13. 13

    C #에서 숫자 왼쪽에 0을 추가하는 방법

  14. 14

    fstream을 사용하여 C ++에서 파일을 읽는 동안 추가 문자열 표시

  15. 15

    추가하는 동안 JSON을 문자열 배열로 병합

  16. 16

    C에서 for 루프를 사용하여 배열에 숫자 추가

  17. 17

    모든 숫자가 "자체"횟수만큼 복제되는 새 배열을 반환하는 배열 메서드

  18. 18

    사용자 집합을 반복하고 C #에서 추가하는 방법

  19. 19

    C에서 4 자 구조의 2D 배열을 복사하는 동안 memcpy 오류 분할 오류

  20. 20

    특정 인덱스에서 부호없는 문자 배열에 64 비트 부동 소수점 숫자를 추가하는 방법 (C ++)

  21. 21

    반복되는 문자열에 증가하는 숫자를 추가하는 Replace 메서드

  22. 22

    iOS Swift : 사용자 정의 UITableView 셀에서 2D 배열을 업데이트하는 동안 반복되는 값 가져 오기

  23. 23

    C ++에서 문자열 복사 작업을 수행하는 동안 오류가 발생했습니다.

  24. 24

    C ++ : 문자열을 문자 배열로 복사하는 동안 문제가 발생했습니다.

  25. 25

    문자열에서 문자가 반복되는 횟수를 찾고 반복되는 문자를 동적 숫자로 제거하십시오.

  26. 26

    루프가 C ++에서 문자의 추가 반복을 추가하는 것을 어떻게 중지합니까?

  27. 27

    자바 스크립트에서 문자열을 추가하는 동안 Proplem

  28. 28

    C ++에서 길이가 다른 동적 2D 배열을 반복하는 방법

  29. 29

    자바 스크립트에서 배열을 객체로 변환하는 동안 추가 속성을 추가하는 방법은 무엇입니까?

뜨겁다태그

보관