我对 C 指针有一些误解:
void putString(char* StringPtr, int length){
for(int i=0; i< length; i++)
{
USART_send(*StringPtr);
StringPtr++;
}
}
void parseMsg(char* in_string, int str_len) {
int i = 0;
putString(in_string, str_len);
for(i = 0; i <= str_len; i++)
{
char* temp_pt = &in_string[i];
putString(temp_pt, 1);
}
}
int main(int arg) {
char* myChar = "abcdefg";
parseMsg(myChar, 7);
}
编辑:
在 parseMsg
中,当我调用第一个 putString
时,效果很好。当我尝试循环打印每一个时,它没有。 USART_send
只是将字符输出到我的终端。
最佳答案
那是因为 test[i]
是 char
类型而不是 char *
类型。
您可以分配给 char:
char temp = test[i];
或者获取它的地址:
char *temp = &test[i];
关于C 指向字符的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15721859/