C语言知识点
-
输出时格式控制字符%g 作用减少多余零的输出
-
在读入字符时可以用%s来代替%c
-
当要通过函数来改变主函数里面的参数的值时可以加&
例如
#include <stdio.h>
void func(int &a,int &b){
a +=2;
b += 2;
}
int main () {
int a = 1,b = 1;
func(a,b);
printf("%d%d\n",a,b);
}
-
在c语言中逻辑运算符&&相当于if
例如
flag && printf(" "); //当flag不为零时输出空格
注意:&&后面不能接return,break,contine
- 程序调用自身的编程技巧叫做递归,在递归函数中我们需要格外注意边界条件的处理
例如,读入n,计算n的阶乘
#include <stdio.h>
int func (int n) {
if(n == 0) return 1;
return n *f( n - 1 );
}
int main () {
int n;
scanf("%d", &n);
printf("%d" ,func(n));
}
此时需要注意当n等于零时
- 函数指针
int g(int (*f1)(int), int(*f2)(int),int(*f3)(int), int x){
if (x < 0){
return f1(x);
}
if (x < 100) {
return f2(x);
}
return f3(x);
}
int (*f1)(int)
前面的 int 表示这个指针变量可以指向返回值类型为 int 型的函数;后面括号中的int 表示这个指针变量可以指向有一个参数且是
int 型的函数。所以合起来这个语句的意思就是:定义了一个指针变量 f1,该指针变量可以指向返回值类型为 int 型,且有一个整型参数的函数。
函数指针的定义方式为:
函数返回值类型 (* 指针变量名) (函数参数列表);
调用函数指针
int func(int x);
int (*p) (int x);
p = func;
void g(int (*f)(int) , int x){
printf(" ");
}
g(f1,5);
-
while(scanf("%d",&n) != EOF)
和while(~scanf("%d",&n) )