gpt4 book ai didi

c++ - 有没有办法通过 int 指针一次打印整数?

转载 作者:太空宇宙 更新时间:2023-11-03 10:30:43 24 4
gpt4 key购买 nike

#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 及以上的整数,它打印第一个数字,留下第二个数字。

最佳答案

不,没有。这也有一个很好的理由:不像 char*int s 序列的结尾”和 int* 没有明确定义的含义不知道有多少 int它指向。

char*我们有'\0' ,如果你忘记了这个,那么像 printf("%s", cptr) 这样的东西会坏的。用int*我们没有很好的等价物,因为人们使用 0相当多。

关于c++ - 有没有办法通过 int 指针一次打印整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17577693/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com