----------------解决方案--------------------------------------------------------
谢谢谢谢,我刚才编了一个,中了您说的三个招
----------------解决方案--------------------------------------------------------
我是初学的~
有时候还纳闷明明按书上抄的都不会~
一看LZ的才晓得原来是这么回事啊
我就差没当场晕了
谢谢LZ了哈
以后还有问题请你多多指教!
----------------解决方案--------------------------------------------------------
第16条怎么是错的?
16、初始化数组时,未使用静态存储。
int a[3]={0,1,2};
这样初始化数组是不对的。C语言规定只有静态存储(static)数组和外部存储(exterm)数组才能初始化。应该为:
static int a[3]={0,1,2};
我平常都这样赋值,是对的啊?
请教楼主
----------------解决方案--------------------------------------------------------
可以
int a[10]={0,1,2,3,4,5,6,7,8,9};正确.
老潭书上经常是这样的,难道错了...
----------------解决方案--------------------------------------------------------
我是初学,谢谢!
----------------解决方案--------------------------------------------------------
3、忽略了“=”和“==”的区别
许多高级语言中,用“=”符号作为关系运算符“等于”。如BASIC程序中可以写if(a=3) then …… 但c语言中“=”是赋值运算符,“==”是关系运算符,如:
if(a=5) a=b;
if(a==5) a=b;
前者是进行赋值,将3赋给变量a,在判断a的值是真还是假,显然,a的值是5始终为真;而后者表示比较,即如果a和3相等,把b值赋给a。由于习惯问题,初学者往往会犯这样的错误。(经常在论坛上碰到这类问题,所以请新手在发帖前先检查一下自己是不是因为这个问题导致程序出错,以节约大家的时间。谢谢!)
记得XXXX年全国计算机等级考试有一道这种题,大概是(不记得了,随便编的,题意一样_)
#include <stdio.h>
int main() {
int a=1;
if(a=1) {
printf("1");
}
else {
printf("2");
}
N多的人写错了
----------------解决方案--------------------------------------------------------
这个问题我开始打的时候也发现问题,但是书上的东西,改了就失去原来的风格了,所以还是打了出来,如果知道出来的大虾可以出来讲讲原因!
----------------解决方案--------------------------------------------------------
把他顶上去,给更多人看
----------------解决方案--------------------------------------------------------
多程序,会提高调试能力,因为调试能力很重要,在指逻辑错误,如果调试能力不没有,自已错误都不知道。
----------------解决方案--------------------------------------------------------