gcc 4.4.4 c89int 배열을 끝내는 nul
나는 int 배열로 실험하고있었습니다. 그리고 무언가가 내 마음에 왔습니다. 내가 그걸 끝낼 수 있을까? 예를 들어, 0에서 nul까지 사용합니다. 그러나 0은이 배열에서 유효한 값일 수 있습니다.
아래 코드는 5 이후에 종료됩니다. 유효한 숫자가 0이더라도. 그러나 배열의 크기를 지정할 수 있습니다. 그러나이 경우, 나는이 특별한 문제에 관심이있는만큼 이것을 원하지 않습니다. 어떤 조언을
많은 감사, 짧은에서
#include <stdio.h>
static void test(int *p);
int main(void)
{
int arr[] = {30, 450, 14, 5, 0, 10, '\0'};
test(arr);
return 0;
}
static void test(int *p)
{
while(*p) {
printf("Array values [ %d ]\n", *p++);
}
}
부호없는 값만 저장하는 경우 -1은 좋은 종결 자입니다. while (* p)를 while (* p + 1)로 바꿀 수 있습니다. – schnaader
BTW, '0'과'\ 0 '은'int'를 초기화 할 때 똑같은 것을 의미합니다. –
@schnaader : "* 긍정 * (또는 * 음이 아닌 *) 값만 저장하면 ..."을 의미합니다. –