#include<stdio.h>
void main(){
char p[20];
char *s="string";
int i;
int length= strlen(s);
for(i=0;i<length;i++)
p[i]=s[length-i]; // it shows expected values when checked here, character by character.
//But, if it's printed as string, it shows blank.
printf("%s",p);
//And now, again checking it character by character, it behaves like nothing is stored.
for(i=0;i<strlen(p);i++)
printf("%c",p[i]);
}
}
它什么也不打印。遍历for
循环并检查变量p
的值时,它会显示期望值。但是在for循环外检查时,它什么也不保存。然后为什么呢?
第一个赋值p[i]=s[length-i]
设置p[0]
为结束字符串的null终止符s
。
因此,尝试printf
在阵列上使用p
将不会输出任何内容。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句