mack1983 发表于 2014-3-22 18:07:18

c入门第046讲

本帖最后由 mack1983 于 2014-3-22 20:23 编辑



#include <stdio.h>
char str(char *from_x,char *to_x);
void main()
{
char *form_s="1fishc.com is a good web site!";
char to_s[]="2fishc.com is a good web site!";
    int a=50,*p=100,c=200;

printf("form_s字符串:%s\n",form_s);
printf("to_s字符串:%s\n",to_s);
str(form_s,to_s);
printf("form_s字符串:%s\n",form_s);
printf("to_s字符串:%s\n",to_s);
}
char str (char *form_x,char *to_x)
{
while ((*to_x++=*form_x++)!='\0')
{
;
}
}
小白老师讲得指针这里,好些地方让我好纠结~
46讲,7分14秒讲到:
上面这道小白老师的解答是取值符*的优先级高于++自增符,所以会先取值再自增,显然这个理由无法让我信服~
这果按这讲所讲: *form_x++,就相当于*(form_x++)
而前面42讲,4分8秒讲到:
*取值符和++自增符的优先级是同级的,自右向左结合,那就应该是先自增再取值.
我查了优先级表,这两个符号的确是同级,而且自右向左.
如果按这讲所讲: *pointer_1++,就相当于*(pointer_1)++

这两讲的视频一对比起来,我就迷惘了~~


昵称Jin 发表于 2014-3-23 09:17:46

求下载地址:mad:

wosibingo 发表于 2014-3-23 10:28:23

这是在哪里的

zhaopengfei 发表于 2014-3-23 10:47:04

楼主注意:i++ 操作是先取值 然后才自增的。 而++i才是先自增再取值,两者有区别的。 你对比一下题目就明白了

mack1983 发表于 2014-3-23 13:15:14

zhaopengfei 发表于 2014-3-23 10:47 static/image/common/back.gif
楼主注意:i++ 操作是先取值 然后才自增的。 而++i才是先自增再取值,两者有区别的。 你对比一下题目就明白 ...

谢了哈,部题己经解决~

水墨君 发表于 2014-3-23 16:15:05

char *p;
*p++;等价于下面代码char *p;
*(p++)都是先引用在+1.
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
要区分下面代码(*p)++........01
*(p++)...........02
*p++.............03
实际上02和03是一样的

mack1983 发表于 2014-3-25 10:36:11

水墨君 发表于 2014-3-23 16:15 static/image/common/back.gif
等价于下面代码都是先引用在+1.
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 ...

谢了哈,~~
解答的很详细~
页: [1]
查看完整版本: c入门第046讲