在下面的代碼中,當函數print_uart傳遞字符串「Hello world」時,* s中究竟接收了什麼?它是字符H還是字符串「Hello World」所在的內存地址存儲?帶字符指針作爲參數的函數
volatile unsigned int * const UART0DR = (unsigned int *)0x101f1000;
void print_uart0(const char *s)
{
while(*s != '\0')
{ /* Loop until end of string */
*UART0DR = (unsigned int)(*s); /* Transmit char */
s++; /* Next char */
}
}
void c_entry()
{
print_uart0("Hello world!\n");
}
'揮發性無符號整型* const的' - 這是什麼意思是不斷變化的 –
's'是一個指針,'* s'是char值。 '* UAT0DR =(...)(* s)'使用值。 – fukanchik
@Ed,指針是'const',它指向的是volatile。 – chux