关于c语言指针

uint8_t TimeStr[20];
…………
sprintf((char *)TimeStr, "Time: %0.2d:%0.2d:%0.2d ", THH, TMM, TSS);
以上程序中 (char *) 是干吗用的?谁能给我解释一下?

将uint8_t类型强制转换为char 型,因为sprintf要求第一个参数是char *类型追问

char *是什么类型啊?

追答

char * 是字符串指针,

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-07-04
类型强制转换
第2个回答  2011-07-04
强制类型转换。原TimeStr是uint8_t类型的,加上(char *)就强制转换成char*类型了。追问

char *是什么类型啊?

第3个回答  2011-07-04
这个char * 是强制类型转换, 把TiemStr强制转换成char * 类型的。你的这个TimeStr可能是malloc来的一个缓冲区,转换成char*之后就可以向缓冲区中打印数据了。追问

char *是什么类型啊?

追答

char 是字符类型,char * 是字符串的指针。其实意思就是字符串首字符的地址,你上面的代码如果把 uint8_t TimeStr[20]; 改成 char TimeStr[20]; 那就不用强制转换了。

第4个回答  2011-07-04
强制转换类型!
第5个回答  2011-07-05
const int *p这种写法,p是指向const对象的指针。
int * const p这种写法,指针为const,而不是它指向的对象为const。

指向const对象的指针(自以为指向const的指针——语出《C++ Primer》)
怎么写?const double *cptr;
const限定了cptr指向的对象的类型,而并非cptr本身。也就是说,cptr本身并不是const,允许给cptr重新赋值。不能通过cptr的解引用来修改其指向的对象(可以非const)的值。
(1)如果指针指向const对象,则不允许用指针来改变其所指的const值。
(2)把一个const对象的地址赋给一个普通的、非const对象的指针也会导致编译时的错误。
(3)不能使用void*指针保存const对象的地址,而必须使用const void*类型的指针保存const对象的地址。
(4)允许把非const对象的地址赋给指向const对象的指针,此时不能通过指针修改其值的行为都会导致编译时的错误。但是可以通过原变量名来修改其值。不能保证指向const的指针所指对象的值一定不可修改。所以“如果cptr是一个指向const对象的指针,那么*cptr在程序运行期间始终不变”这种说法是错误的。
另外,虚机团上产品团购,超级便宜
相似回答
大家正在搜