C语言字符指针问题
C语言字符指针问题例如char*p="Hello";输出时可用%s,p的方式,如果用*p是不是只能用循环加指针位移逐个字符输出?引用是也是可以直接用p吗?假设a是一个字符...
C语言字符指针问题例如char * p = "Hello";输出时可用%s,p的方式,如果用*p是不是只能用循环加指针位移逐个字符输出?
引用是也是可以直接用p吗?假设a是一个字符串,strcmp(a,p)比较这样对吗? 展开
引用是也是可以直接用p吗?假设a是一个字符串,strcmp(a,p)比较这样对吗? 展开
2个回答
展开全部
举一个不是很严谨的例子。假设系统给hello的存储地址是从1开始的。那么h的存储地址是1,e的存储地址是2,以此类推。指针p指向的地址,其实是h的存储地址1。所以你用字符串输出时,用的是指针p。
而*p代表的是1这个存储地址保存的值。那就是h。所以,你输出时,只能用字符输出:%c。
*(p+1)则代表2这个存储地址保存的值。以此类推
printf("%c", *p); // 结果是h
printf("%c" , *(p+1)) // 结果是e
最后是函数引用问题。这里是否能引用p,是需要看你的函数是怎么写的。比如说你说strcmp。他的原型为
extern int strcmp(const char *s1,const char *s2);
他两个参数均为指针,当然可以直接使用p这个指针作为参数
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询