44问答网
所有问题
C语言中用printf输出字符串, printf("%s\n %s\n",*p,p);运行不了啊??
如题所述
举报该问题
推荐答案 2015-05-28
printf("%s",p);
是指从指针p所指向的字节开始输出,直到读到'\0'字符
而*p则是只p指向的字符,也就是
字符串
的第一个字符
如果printf("%s\n",*p);则系统会将p所指向的字符化为内存地址,并从那里开始读取……
(例如字符串开头为'0'则从内存地址0x00000030开始读取
等价于
char *p=48;
printf("%s\n",p);
)
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://44.wendadaohang.com/zd/Y6DKZWRWZKVYY6DYK3W.html
其他回答
第1个回答 2015-05-28
printf应该改为printf("%c\n %s\n",*p,p);
%s表示要打印的是字符串,所以后面应该是char*,而你写*p是表示a[0]的字符值
第2个回答 2015-10-14
printf是C语言中的格式化输出函数,需要将第一个参数字符串中的格式字符与后面参数中的匹配,否则就会出错。
比如当格式字符为%d时,后面对应位置的参数就必须是int型,或者可以转为int型的其它类型。
在 printf("%s\n %s\n",*p,p);这句中,格式字符有两个均为%s,对于这个格式字符,后续的参数必须为char *型,即字符指针或一维字符数组类型。
后续传入了两个参数,*p和p,这样无论p是什么类型,*p和p中至少有一个不是char *型,所以必然会出错。
相似回答
c语言
未经处理的异常,求大佬指点
答:
因为您定义的x为字符型数据,那么它对应的输入输出格式符为%c,但是您在输入语句中写的是
%s,
是字符串格式,不符合字符型单个变量的输入输出。根据题目意思,应该是要输入
字符串,
那么定义的时候就要写成char x[2],因为存放的是性别中文字,所以数组长度定义为2就可以了。您再试试哦。
...main(void) { char a[]=”abc\0abc”
;
printf(
答:
1、求1!+2!+3!+。。。+10!include <stdio.h> void main(void){ float s = 0, t = 1;int n;for (n=1; n<=10 ; n++){ t*=n ; //该这句 S+= t ;}
printf(
“1!+2!+3!+。。。+10!=%f”, s);} 2、以下程序是用来统计从键盘输入的一个正整数中各位数字中...
...char
*p
ointer = "Hello World!"
;
printf(
"
%s
\n"
,p
ointer...
答:
回答:这里的 pointer 指向的是一个
字符串,
字符串的首地址赋给 pointer
printf(
"
%s
\n",pointer); //输出Hello World!// printf 遇到指向字符串的指 //针时,
输出字符串
(就是这样定义的) printf("%s\n"
,*p
ointer); //输出H printf("%d\n",pointer); //输出pointer指向的地址
...
*p;
for
(p
=s+1
;p
<s+4;
P
++)
printf(
"
%s
\n"
,p);
}
答:
一般的没有错。只是C是一个对大小写敏感的语言。把 for(p=s+1;p<s+4; P++)改成 for(p=s+1;p<s+4; p++)就行了。
大家正在搜
相关问题
关于C语言中printf输出字符串的问题!
C语言中%s输出字符串怎么用?
为什么 C 语言中 printf 输出字符串需要用 %s 来...
C语言中,printf后的一段话能否不写 "%s\n" ? ...
c语言字符串输出无效
C语言中printf不能输出的问题
C语言printf输出时,为什么当我把 格式串中的 \n 去...
C语言问题,为什么以下程序中printf("%s\n",*p...