关于 char* p和 char *p,困惑,求解释
char* p;
//char *p;
第一种写法和第二种写法的人应该是站在不同的角度去理解的,第一种写法的人把char*看成了一种类型,但是实际上我们把*看做一个单目运算符,那么不管哪种写法,*都应该是先跟p结合,即定义一个字符指针的时候实际上是 char (*p),
但是char*的确是一种类型,因为强制转换的时候有:int *p = (char*)q,那么定义的时候到底是怎么一回事,从结合方法上看,根本就没出现(char*)这种类型!
相关推荐
分析C++中char*和char[]的区别
深入分析C++中char*和char[]的区别,分析的十分透彻,对于新手、高手都适用。
关于char (*p)[] 和char p[]的问题
指针数组与数组的讲解讲的非常详细,看完不懂可以砍我
编写函数void fun(char *s,char *t,char *p)将未在字符串s中出现、而在字符串t中出现的字符, 形成一个新的字符串放在p中,p中字符按原字符串中字符顺序排列,但去掉重复字符。
编写函数void fun(char *s,char *t,char *p)将未在字符串s中出现、而在字符串t中出现的字符, 形成一个新的字符串放在p中,p中字符按原字符串中字符顺序排列,但去掉重复字符。 例如: 当s为"12345", t为"8624677"时, p中的字符为: "867"; 当s为”good luck”,t为”thank you very much”时,输出:”thanyverm”
浅析string 与char* char[]之间的转换
与char*不同的是,string不一定以NULL('0')结束。string长度可以根据length()得到,string可以根据下标访问。所以,不能将string直接赋值给char*
C语言中char*和char[]用法区别分析
本文实例分析了C语言中char* 和 char []的区别。分享给大家供大家参考之用。具体分析如下: 一般来说,很多人会觉得这两个定义效果一样,其实差别很大。以下是个人的一些看法,有不正确的地方望指正。 本质上来说,char *s定义了一个char型的指针,它只知道所指向的内存单元,并不知道这个内存单元有多大,所以: 当char *s = “hello”;后,不能使用s[0]=’a’;语句进行赋值。这是将提示内存不能为”written”。 当用char s[]=”hello”;后,完全可以使用s[0]=’a’;进行赋值,这是常规的数组操作。 若定义: char s[] = hello;


