下面程序段的运行结果是( ).char *p="abcdefgh"; p+=3; printf("%d\n",strle
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/12 07:55:20
下面程序段的运行结果是( ).char *p="abcdefgh"; p+=3; printf("%d\n",strlen(strcpy(p,"ABCD")
为什么不是7."abcABCD"?急
为什么不是7."abcABCD"?急
halps 说得有道理
strcpy的实现代码
char * strcpy(char * strDest,const char * strSrc)
{
char * strDestCopy=strDest; //[3]
if ((strDest==NULL)||(strSrc==NULL)) //[1]
throw "Invalid argument(s)"; //[2]
while ((*strDest++=*strSrc++)!='\0'); //[4]
return strDestCopy;
}
函数把‘\0’也拷贝进去了的,而strlen也是取得‘\0’之前的
再问: p+=3不是使指针指向了第三个c后面,那复制不是应该从c之后开始复制吗?
再答: p+=3之后,*p应该就是指向defgh\0了,复制之后变成ABCD\0
strcpy的实现代码
char * strcpy(char * strDest,const char * strSrc)
{
char * strDestCopy=strDest; //[3]
if ((strDest==NULL)||(strSrc==NULL)) //[1]
throw "Invalid argument(s)"; //[2]
while ((*strDest++=*strSrc++)!='\0'); //[4]
return strDestCopy;
}
函数把‘\0’也拷贝进去了的,而strlen也是取得‘\0’之前的
再问: p+=3不是使指针指向了第三个c后面,那复制不是应该从c之后开始复制吗?
再答: p+=3之后,*p应该就是指向defgh\0了,复制之后变成ABCD\0
下面程序段的运行结果是( ).char *p="abcdefgh"; p+=3; printf("%d\n",strle
下面程序的运行结果是: char c[]="\t\v\\\0will\n" printf("%d",strlen);
麻烦回答以下几道题 执行下列程序段后,*p的值是char *p="asdf";printf("%c",*(p+strle
有下面的程序段 char a[3],b[ ]=“china”; a=b; printf(“%s\n”,a);运行后输出什
下面程序段的输出是( ) char c1=’b’,c2=’e’; printf(“%d,%c\n”,c2-c1,c2+’
以下程序运行后的输出结果是() main() {char m; m='B'+32; printf("%c/n",m);}
下面程序的输出结果是() #include main() {int x=10,*p=&x; printf("%d,%d"
下列程序段的输出结果是_ int x=3; if(x=5) x++; printf("%d\n",x);
192.以下程序段运行后,表达式*(p+4)的值为( ).char a[]="china"; char *p; p=a;
以下程序的运行结果是(D ).void main( ) { int a; if(a=6) printf("%d\n",a
#include; char *p="ABC" printf("%d",strlen(p)+*p);
char *p[4]={1,2,3,4}; 而输出是printf("%d",p[0]) ;printf("%d",p[1