繁体   English   中英

C * char指向char数组的指针

[英]C *char pointer to char array

我有一个* char指针和一个char数组。 如何将指针的值放在char数组中? 我试过了

uint8_t i;
char a[10];
char *b = "abcdefghi";
for(i = 0; i < 9; i++)
{
    a[i] = b[i];
}
printf("%s", a);

但这是行不通的。

的大小a10 ,所以是的长度b (包括空终止)。 更改

for(i = 0; i < 9; i++)

for(i = 0; i < 10; i++)

你在做什么是对的。

突出会在for循环中更改i<10

char数组中有10个元素,数组索引为0-9

另一个变体:

#include <stdio.h>
int main(void)
{
    char a[10];
    char *c = a;
    char *b = "abcdefghi";
    for(; *c = *b; ++c, ++b);
    printf("%s", a);
    return 0;
}   

但是strcpy()在任何情况下都可以更快地工作,因为它通常是针对特定体系结构用汇编语言编写的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM