C语言为什么打印字符串需要在变量前加个*号

#include<stdio.h>intmain(){char*x="abc";/*为什么在X前面需要*号*/printf("%s",x);/*为什么这里是%S不是%C么... #include<stdio.h>

int main()
{
char *x="abc"; /*为什么在X前面需要*号*/
printf("%s",x); /*为什么这里是%S不是%C么?*/

return 0;
}
我把那个*去掉了,程序就错误了。
展开
 我来答
xueyin0132
2009-12-28 · 超过10用户采纳过TA的回答
知道答主
回答量:50
采纳率:0%
帮助的人:33.2万
展开全部
char是字符,char* 是指向字符的指针,当然也可以指向字符串(就是一串字符)。
char x=‘a’,x本身存储的就是字符,char *x=‘abc’,x只是一个地址(就像门牌号一样的地址),指向存放‘abc’的地方。是2个数据类型。
现在你知道为什么去掉*就完全错了吧。
%c打印的是char,%s打印的是string。至于穿进去什么那就是规定了
雷学岺相溪
游戏玩家

2019-11-12 · 游戏我都懂点儿,问我就对了
知道大有可为答主
回答量:1.4万
采纳率:26%
帮助的人:928万
展开全部
c语言本身没有设置一种类型来定义字符串变量,字符串的存储完全依赖字符数组
但是c++里包含头文件
#include
"string"
可以使用string类
操作起来比字符数组方便很多
#include
"string.h"
比起上面那个多一个.h
这个头文件是c语言的头文件
里面有常用的有关字符串的函数
比如strcmp字符串比较
strcat字符串拼接
但是它们操作的还是字符数组
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a1012144015
2015-05-15 · TA获得超过6415个赞
知道大有可为答主
回答量:9038
采纳率:40%
帮助的人:1352万
展开全部
char是字符,char* 是指向字符的指针,当然也可以指向字符串(就是一串字符)。
char x=‘a’,x本身存储的就是字符,char *x=‘abc’,x只是一个地址(就像门牌号一样的地址),指向存放‘abc’的地方。是2个数据类型。
现在你知道为什么去掉*就完全错了吧。
%c打印的是char,%s打印的是string。至于穿进去什么那就是规定了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kunlun00100
2009-12-28 · TA获得超过109个赞
知道答主
回答量:129
采纳率:0%
帮助的人:101万
展开全部
char *x="abc"; 这里的*是指出x是一个指向字符型数据的指针变量,用来存储字符型数据的地址,如这个语句就是把字符串"abc"所在的地址赋予指针变量x。
如果去掉*,x就变成一个字符型变量了,它只能存储字符型的数据如'a'(注意字符用单引号,字符串用双引号)。

指针是一个难点
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
0o男二号o0
2009-12-28
知道答主
回答量:14
采纳率:0%
帮助的人:0
展开全部
加*是因为 x是指针(也就是存放"abc"的地址) *x表示去这个指针的内容
%s表示输出字符串 %c表示输出字符
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式