c语言中的易错点

Python020

c语言中的易错点,第1张

具体语句太多了,就不一一指明,我就说一下整体的吧。

看看大括号有没有成对出现,这就是所谓的成对编程。

还有就是少分号,有些语句是不需要分号的 比如for if记住几个特例就行,其他大部分都得补足分号。

最容易出错的还有指针,建议从一些简单指针题入手,掌握好规律就可以了。

A是错的

字符数组除了在定义行可以这样直接初始化外,像A这样初始化是不正确的

C是指针数组,这里相当于把这个字符数组的首地址赋予SS[1]

ss[1]="right?"并不是把"right?"的指针赋值ss[1],这样是赋值

如果是赋予指针还要有取地址符&,而且这个也不是指针变量

以下为你收集的c语言输入数据要点及注意事项

说明: (1)数据输入是相对计算机内存

(2) 数据输入使用标准库函数完成

(3) 数据输入标准库函数的原型声明在stdio.h头文件中

1、函数getchar函数的功能是从键盘上输入一个字符。

其一般形式为:字符变量=getchar()

getchar函数只能接受单个字符,输入数字也按字符处理。

输入多余的字符存入到键盘的缓冲区,若有下一个getchar函数语句,直接从键盘的缓冲区读取。

2、字符串输入函数gets 格式

gets (st)

功能:从键盘上输入一个字符串,本函数得到一个函数值,即为该字符数组的首地址。

注意:gets函数并不以空格作为字符串输入结束的标志,而只以回车作为输入结束。这是与scanf(“%s”,…)函数不同的。

3、scanf()函数的一般形式

scanf(“格式控制字符串”,地址列表)

地址列表,用来接受数据各变量的地址。

变量的地址表示如下: &变量名 ,别忘了取地址运算&

其格式字符串的一般形式为:

%[*][输入数据宽度][长度]类型字符

其中有方括号[]的项为任选项。各项的意义如下:

1) 类型字符

表示输入数据的类型,其格式符和意义如下所示:

d 输入十进制整数

o 输入八进制整数

x 输入十六进制整数

u 输入无符号十进制整数

f或e 输入实型数(用小数形式或指数形式)

c 输入单个字符

s 输入字符串

2) “*”符

用以表示该输入项读入后不赋予相应的变量,跳过该输入值。

如 scanf("%d %*d %d",&a,&b)

输入为:1 2 3 把1赋予a,2被跳过,3赋予b。

3)宽度

用十进制整数指定输入的宽度(即字符数)。

例如:scanf("%5d",&a)

输入: 12345678

只把12345赋予变量a,其余部分被截去。

又如:scanf("%4d%4d",&a,&b)

输入:12345678将把1234赋予a,而把5678赋予b。

4)长度 长度格式符为l和h,l表示输入长整型数据(如%ld)和双精度浮点数(如%lf)。h表示输入短整型数据。

例如:

main()

{ inta

long b

double x

scanf(“%d%ld%lf”,&a,&b,&x)

printf(“a=%d, b= %ld,x=%lf”,a,b,x)

}

使用scanf函数还必须注意以下几点:

(1)scanf函数中没有精度控制。

如:scanf(“%5.2f”,&a) 是非法的。

(2)scanf中要求给出变量地址,

如: scanf(“%d”,a)是非法的。

(3)在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔则可用空格,TAB或回车作间隔。

例如:scanf(“%d%d”,&a,&b)

输入: 12 10 回车

或 12 回车10 回车

(4)在输入字符数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。

例如:

scanf("%c%c%c",&a,&b,&c)

输入为:d e f 则把'd'赋予a, ‘’'赋予b,'e'赋予c。

只有当输入为: def时,把'd'赋于a,'e'赋予b,'f'赋予c。

如果在格式控制中加入空格作为间隔,

如 scanf ("%c %c %c",&a,&b,&c)

输入时各数据之间可加空格。

(5)如果格式控制串中有非格式字符则输入时也要输入该非格式字符。

例如:

scanf("%d,%d,%d",&a,&b,&c)

其中用非格式符“,”作间隔符,故输入时应为:5,6,7

又如:

scanf("a=%d,b=%d,c=%d",&a,&b,&c)

则输入应为:a=5,b=6,c=7

(6)如输入的数据与输出的类型不一致时,虽然编译能够通过,但结果可能不正确。

void main()

{ inta

printf("inputa number\n")

scanf("%d",&a)

printf("%ld",a)

}

以上总结比较全面,希望能帮到你。