C语言字符指针问题

C语言字符指针问题例如char*p="Hello";输出时可用%s,p的方式,如果用*p是不是只能用循环加指针位移逐个字符输出?引用是也是可以直接用p吗?假设a是一个字符... C语言字符指针问题例如char * p = "Hello";输出时可用%s,p的方式,如果用*p是不是只能用循环加指针位移逐个字符输出?
引用是也是可以直接用p吗?假设a是一个字符串,strcmp(a,p)比较这样对吗?
展开
 我来答
弑绯
2018-08-20 · TA获得超过2500个赞
知道小有建树答主
回答量:893
采纳率:75%
帮助的人:718万
展开全部

举一个不是很严谨的例子。假设系统给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这个指针作为参数

White_MouseYBZ
2018-08-20 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6528万
展开全部
对。理解正确。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式