指针就是地址 我是这么理解的 如果定义一个 char 变量 char a ; 那么 很明显定义指向他的指针 char *p; *p=a; p的值就是a的地址吧 我笨笨的举例 a是char型的a的内容是0x20 地址在0x10那么p的值就是0x10了 书上说 char *p 是定义一个指向 char型变量的指针变量 知道p是指向char型的变量 但是我觉得没有理由说p也是char型的 如果内存地址都是16位的 从0x0000到0xffff 就算里面每个单元是byte 8位 那么地址也都是16位的 也就是刚才说的 p的应该是 short int 型的 值是0x0010 其实指针也是个变量吧 也是需要存放的 貌似从 char *p; *p=a 这两句只能说明 p是装a的地址 具体p是多少位的地址 那就由系统硬件决定 所以我就认为char *p 是定义p 指向目标的类型 而没决定p的类型 如果不这么想 好象没法解释44b0初始化程序的一句 #define rUTXH0 (*(volatile unsigned char *)0x1d00020) UTXH0是UART的 发送保持寄存器 地址是32位的 但里面装的内容是个byte 8位 不知道这么理解对不对 大侠们指点下 |