#include<stdio.h>
int main(){
int integers[40] = {1,2,3,4,5,6,7,8,9,10,-1};
int integers1[40];
int *ptr;
int *ptr1;
ptr = integers;
ptr1 = integers1;
while(*ptr != -1){
*ptr1++ = *ptr++;
}
*ptr1 = -1;
ptr1 = integers1;
while(*ptr1 != -1){
printf("\n *ptr1 : %d \n",*ptr1);
*ptr1++;
}
return 0;
}
ループを使用せずに、ptr1 が指す整数を一度に出力する方法はありますか?
編集:
#include<stdio.h>
int main(){
char integers[40] = {'1','2','3','4','5','6','7','8','9','10','\0'};
char integers1[40];
char *ptr;
char *ptr1;
ptr = integers;
ptr1 = integers1;
while(*ptr != '\0'){
*ptr1++ = *ptr++;
}
*ptr1 = -1;
ptr1 = integers1;
ptr = integers;
printf("\n *ptr1 : %s \n",ptr1);
printf("\n ptr : %s \n",ptr);
return 0;
}
最後の整数 10 が表示されません。代わりに、0 として出力されます。diff 値で出力されるのはなぜですか? . 値 9 に置き換えると、正しく表示されます。10 以上の整数の場合、1 桁目が出力され、2 桁目が残ります。