新人都对左值右值、自增运算、数组越界、野指针、字符串操作、链接错误、vc6.0安装、谭老师的书、求IDE/编译器/教程感兴趣?
常见问题:
1.这个语句是什么意思:a[b%4]=c>0?3:5;
答:自己去看操作符优先级、结合性,如果连操作符的作用都没搞明白(尤其是位运算),只有书上解释的最清楚。看不懂书再来问。
2.a=--a-a+++(a*=2)+(a-=5)
答:每种编译器都可能产生不同的结果,但你不能说它们之中的任何一种是错的,因为这个语句中表达式的求值顺序不受操作符优先级和结合性的约束,并且这些操作符本来就有副作用。另外:前缀是立即自增/减,后缀是表达式执行完后自增/减。
3.char s[]="123"; for(int i=0;i<10;i++)s[i]='A'+i; 为什么可以正常执行/崩溃了?
答:数组越界是未定义的行为,就算有用也只是凑巧。
4.怎么会输出乱码:int ans,i; for(i=0;i<20;i++)ans+=i;
答:未初始化。(野指针同理,还有printf函数的参数类型不对也会输出乱码)
5.字符串问题:弄清楚字符串和字符指针,不能直接用=赋值,字符串操作要用strcpy,strcat等函数(看书)。
6.怎么编译不了啊?
答:如果你的程序没错那可能是库文件缺失,重装编译器或者换一个。
7.二级:去二级c吧。
8.求资料。
答:置顶帖有。工具:tieba.github.io/cpl/index.html#tools 书籍:http://tieba.github.io/cpl/index.html#books 问百度会吧。
9.LZSB?答:有问题为什么不先问问神奇海螺呢?
常见问题:
1.这个语句是什么意思:a[b%4]=c>0?3:5;
答:自己去看操作符优先级、结合性,如果连操作符的作用都没搞明白(尤其是位运算),只有书上解释的最清楚。看不懂书再来问。
2.a=--a-a+++(a*=2)+(a-=5)
答:每种编译器都可能产生不同的结果,但你不能说它们之中的任何一种是错的,因为这个语句中表达式的求值顺序不受操作符优先级和结合性的约束,并且这些操作符本来就有副作用。另外:前缀是立即自增/减,后缀是表达式执行完后自增/减。
3.char s[]="123"; for(int i=0;i<10;i++)s[i]='A'+i; 为什么可以正常执行/崩溃了?
答:数组越界是未定义的行为,就算有用也只是凑巧。
4.怎么会输出乱码:int ans,i; for(i=0;i<20;i++)ans+=i;
答:未初始化。(野指针同理,还有printf函数的参数类型不对也会输出乱码)
5.字符串问题:弄清楚字符串和字符指针,不能直接用=赋值,字符串操作要用strcpy,strcat等函数(看书)。
6.怎么编译不了啊?
答:如果你的程序没错那可能是库文件缺失,重装编译器或者换一个。
7.二级:去二级c吧。
8.求资料。
答:置顶帖有。工具:tieba.github.io/cpl/index.html#tools 书籍:http://tieba.github.io/cpl/index.html#books 问百度会吧。
9.LZSB?答:有问题为什么不先问问神奇海螺呢?
