char *p=p 什么意思啊??? *p++=*p 什么意思啊???
答案:3 悬赏:0
解决时间 2021-01-13 18:53
- 提问者网友:沉默的哀伤
- 2021-01-13 05:42
char *p=p 什么意思啊??? *p++=*p 什么意思啊???
最佳答案
- 二级知识专家网友:行路难
- 2021-01-13 07:12
1、char *p=p有误,两个变量不能同名,改一个。
改为 (*p)++
(*p)++,是先取指针P的值,然后对其值进行++运算,
*(p++),是先对指针P进行++运算,然后再取取值,
*p++,同*(p++),因为按优先级来看,*和++是同级,他们都是从右到左的顺序进行运算,所以先++,再*。
如果
char q[5] = "am";
char *p = q;
那么,
(*p)++后,p就变成了"bm";因为是进行对其首元素进行加1运算
*(p++)后,p就变成了"m",因为是先指向下一个元素,再进行取值运算,
*p++同上面,
如果只是征对这3个语句赋值给其他变量的话,3个的结果都是a,在这里。
char o = (*p)++;
char m = *(p++);
char n = *p++;
都是a。
改为 (*p)++
(*p)++,是先取指针P的值,然后对其值进行++运算,
*(p++),是先对指针P进行++运算,然后再取取值,
*p++,同*(p++),因为按优先级来看,*和++是同级,他们都是从右到左的顺序进行运算,所以先++,再*。
如果
char q[5] = "am";
char *p = q;
那么,
(*p)++后,p就变成了"bm";因为是进行对其首元素进行加1运算
*(p++)后,p就变成了"m",因为是先指向下一个元素,再进行取值运算,
*p++同上面,
如果只是征对这3个语句赋值给其他变量的话,3个的结果都是a,在这里。
char o = (*p)++;
char m = *(p++);
char n = *p++;
都是a。
全部回答
- 1楼网友:不如潦草
- 2021-01-13 10:14
char *p = p无非定义一个char型指针,指向后面那个变量,后面那个变量也是一个char型指针。
*p1++=*p2 这句呢,就是将p2的地址给p1,然后p1的地址再往后移一位。也就是*p1=*p2;p1++;
*p1++=*p2 这句呢,就是将p2的地址给p1,然后p1的地址再往后移一位。也就是*p1=*p2;p1++;
- 2楼网友:妄饮晩冬酒
- 2021-01-13 08:39
1、char *p=p有误,两个变量不能同名,改一个。char *p1=p;p应该是个已经定义过的指针。
2、*p++=*p ,改名后是*p1++=*p,这种形式一般用在循环中,复制数组。
while((*dest++=*src++));
如果写成while((*p1++=*p));的话就成了把p1指向的一串内容全都变成一样的。
2、*p++=*p ,改名后是*p1++=*p,这种形式一般用在循环中,复制数组。
while((*dest++=*src++));
如果写成while((*p1++=*p));的话就成了把p1指向的一串内容全都变成一样的。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯