#include <stdio.h> char s[]=”ABCD”; main() { char *p; for(p=s;p<s+4;p++) printf(“%c %s\n”,*p,p); }
运行结果为:
350
A ABCD
B BCD
C CD
D D
D
A ABCD B BCD C CD D D
ABCD
a
A s[0] B s[1] C s[2] D s[3]
A BCD
B CD
C D
a abcd b bcd c cd d d
A ABCDB BCDC CDD D
AABCD BBCD CCD DD
A abcd B bcd C cd D d
A
Nature 回复 Nature: 这里,%c用于打印当前字符(*p),而%s用于打印从当前字符(即p所指向的位置)开始的子字符串。由于p是指向字符的指针,printf会将其视为指向字符串的开头,并打印从那里开始直到遇到\0字符的所有字符。
B ABCD
C ABCD
D ABCD
,
%s是以字符形式输出,p是字符型指针将会扫描该字符串以null结尾
0 A
1 B
2 C
3 D
A 0 B 1 C 2 D 3
A ABCD B BCD C CD DD
zzw1803472614 回复 zzw1803472614: %s 传的是字符数组即字符串,而char[]数组有地址传递,所以%s打印需要传递地址即p或者s而不是*p。*p=s代表p指向s首地址
带*号指向具体的值,不带则指向域
A65,B66,C67,D68
李璞 回复 李璞: %s:表示字符类型
李璞 回复 李璞: A ABCD B BCD C CD D D
B...
用户登录可进行刷题及查看答案
登录后提交答案