C语言指针问题!定义
intf(char*s){char*p=s;while(*p!='\0'p++;return(p-s);}主程序中printf("%d\n",f("goodbye"));...
int f(char*s)
{char *p=s;
while(*p!='\0' p++;
return (p-s);}
主程序中 printf("%d\n",f("goodbye"));
char *p=s是什么意思 展开
{char *p=s;
while(*p!='\0' p++;
return (p-s);}
主程序中 printf("%d\n",f("goodbye"));
char *p=s是什么意思 展开
5个回答
展开全部
你好,主程序中的f(“goodbay”)是一个字符串,在c语言中就是一个字符数组,相当于int a【8】=“goodbay”,为什么是8而不是7了,系统会自动添加一个字符串结束标志\0,所以长度时8.char *s=a,即a【0】的地址,char* p=s;定义一个字符指针,把s赋给这个指针,p就指向了goodbay的首地址,*p=‘g’。p!='、0'就是p!=&a【7】,所以执行完循环,p指向y即p=p+6;p-s我就不明白是什么了,似乎不能这么减。(能不能减记不清了。)
更多追问追答
追问
char *p= 后边不应该是字符串嘛。。怎秣指针也可以
追答
char *p代表定义了一个指针p哦,你的s也是字符指针,所以能赋值,你说的p后面跟字符串,其实就是把字符串的首地址赋给p,实质上也是把一个字符指针类型的s赋给了p,这两个说法实质上相同,就如同你定义一个int a,int b=0;可以执行a=b;是一样的,类型一样就可以赋值。
展开全部
两个指针间的赋值。
s是函数f()的参数,是char*类型
p也是cha*类型,同类型指针可以赋值。
s是函数f()的参数,是char*类型
p也是cha*类型,同类型指针可以赋值。
追问
char *p= 后边不应该是字符串嘛。。怎秣指针也可以
追答
这是可以的,指针是一种数据类型,这种数据类型可以进行 赋值 加法 减法操作。。 建议参考一下 C语言程序设计中的 指针一节。。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、把s的地址赋给p,也就是p,s指向了同一地址的内存空间
2、printf("%d\n",f("goodbye"));输出f("goodbye")函数的返回值,"goodbye"的长度7
2、printf("%d\n",f("goodbye"));输出f("goodbye")函数的返回值,"goodbye"的长度7
追问
char *p= 后边不应该是字符串嘛。。怎秣指针也可以
追答
char *p= 后边不应该是字符串嘛
那就是说明p指向字符串的首地址
char *p定义 的是指针,当然要用指针赋值
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
定义一个char指针,之后把s 赋给P
追问
char *p= 后边不应该是字符串嘛。。怎秣指针也可以
追答
谁说是
字符串,指针赋给同类型指针 一点问题都没有 ,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
30分钟彻底学会C语言指针
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询