注意的问题

c语言所需要注意的问题:

1 %2d是什么意思?

%2d就是保留两位,不足用空格补位,超出该几位就是几位。

比如:输入123,则输出123,输入2,则输出(代表空格,实际输出无下划线,他只是一个空格)_2.

那么一次类推:

%4d就是小于4位,用空格补出,多出4格就该几格就是几格。

总结:

%xdx是几,若不足,前面补几位,补出的是空格,如果超出,则按原位输出。

%0xdx是几,前面有几位不足,那么前面就补几位,补出的是0,如果超出,则按原位输出。

%xf,这个是针对实数的,比如float,double,举个例子

Double a=12.3;

如果是正常输出的话,比如(printf(“%f”,a),则输出12.3000000;

如果是按照位数输出,小数点前面根据计算没有什么特别多的用处,小数点后面的则是他的位数,比如Printf(“%2.1f”),则输出12.3;又比如printf(“%2.2f”,a),则输出12.30;如果是printf(“%2.3f”,a),则输出12.300.

 

2 指针传值会遇到问题。

情景:已经有了一个方法A(struct stu *a);  这个的方法的参数是一个地址,然后我们在main()给他传递参数。

错误做法:

Struct stu *ss;

A(ss);

正确做法:

Struct stu ss;

A(&ss);

思路:

1 变量是单向值传递。这个你应该懂,就是传递如果想改变原值,那么必须要传递地址。(一个变量的引用)。

2 struct stu *ss中的ss是什么?ss是变量,他和int a中的a是一样的,只不过这里存放的是指针(地址)。所以ss就是一个变量,当然传变量是不可以的。必须传地址。即引用。

注:以后函数需要传递地址,那么就是需要这样做。

 

posted @ 2017-05-07 16:07  freebirds  阅读(111)  评论(0)    收藏  举报