
C语言指针问题,会C的请进
#include<stdio.h>#include<conio.h>#include<string.h>main(){charstr[10];char*pstr;pstr...
#include<stdio.h>
#include<conio.h>
#include<string.h>
main()
{
char str[10];
char *pstr;
pstr="abc";
strcpy(str,pstr);
pstr=str;
printf("the length of str is %d\n",strlen(pstr));
getch();
}
大家帮我看下,这个程序中的*pstr最先被赋值abc,后面把指针复制给数组STR,再来,指针指向数组STR,这里不是指向数组第一位下标0吗?为什么后面输出结果指针的长度还是3呢?请指教,谢!
pstr=str;这一句指针指向数组首地址,那指针就等a不是吗?输出不是1吗? 展开
#include<conio.h>
#include<string.h>
main()
{
char str[10];
char *pstr;
pstr="abc";
strcpy(str,pstr);
pstr=str;
printf("the length of str is %d\n",strlen(pstr));
getch();
}
大家帮我看下,这个程序中的*pstr最先被赋值abc,后面把指针复制给数组STR,再来,指针指向数组STR,这里不是指向数组第一位下标0吗?为什么后面输出结果指针的长度还是3呢?请指教,谢!
pstr=str;这一句指针指向数组首地址,那指针就等a不是吗?输出不是1吗? 展开
4个回答
展开全部
肯定是3啊,你最后有把str的值有赋给了pstr,
strcpy(str,pstr);
pstr=str;
这段就是相当与
pstr="abc";
最后strlen()函数在计算字符串长度的时候,是不会计算最后一位'\0'的,所以还是3
strcpy(str,pstr);
pstr=str;
这段就是相当与
pstr="abc";
最后strlen()函数在计算字符串长度的时候,是不会计算最后一位'\0'的,所以还是3
展开全部
strlen()函数在计算字符串长度的时候,是不会计算最后一位'\0'的,所以还是3。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在最后,指针确实是指向数组的第一个元素要str[0],但是sizeof()有这样一个用法:当括号中的是一个指向字符串的指针时(上题中pstr指向一个存储在数组中的字符串),表示求的是字符串的长度.因此结果是3.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数组的首地址和数组的第一个元素的地址是相同的!
strlen();测量的是这个数组从第一个不为'\0'元素到最后一个不为 '\0'的元素的长度!
strlen();测量的是这个数组从第一个不为'\0'元素到最后一个不为 '\0'的元素的长度!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询