【自用】整理的C语言笔记(3)

为了方便考试复习,本人仅作搜集和整理处理,原文详见菜鸟教程。

1.7C 运算符
运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。
1.算术运算符
运算符 描述
“+” 把两个操作数相加
“-” 从第一个操作数中减去第二个操作数
“*” 把两个操作数相乘
“/” 分子除以分母
“%” 取模运算符,整除后的余数
“++” 自增运算符,整数值增加 1
“–” 自减运算符,整数值减少 1
注意a++ 与 ++a 区别在于一个后加,一个先加。

2.关系运算符
运算符 描述
“==” 检查两个操作数的值是否相等,如果相等则条件为真。
!= 检查两个操作数的值是否相等,如果不相等则条件为真。
“>” 检查左操作数的值是否大于右操作数的值,如果是则条件为真。
“<” 检查左操作数的值是否小于右操作数的值,如果是则条件为真。
“>=” 检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。
“<=” 检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。

3.逻辑运算符
&& 称为逻辑与运算符。如果两个操作数都非零,则条件为真。
|| 称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。
! 称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。

4.位运算符
& 按位与操作,按二进制位进行"与"运算。
| 按位或运算符,按二进制位进行"或"运算。
^ 异或运算符,按二进制位进行"异或"运算。
~ 取反运算符,按二进制位进行"取反"运算。
“<<” 二进制左移运算符。将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。
“>>” 二进制右移运算符。将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。

5.赋值运算符
在这里插入图片描述
6.C 中的运算符优先级
运算符的优先级确定表达式中项的组合。这会影响到一个表达式如何计算。某些运算符比其他运算符有更高的优先级,例如,乘除运算符具有比加减运算符更高的优先级。
在这里插入图片描述
1.8C的判断
C 语言把任何非零和非空的值假定为 true,把零或 null 假定为 false
常见的有if…else语句,嵌套的ifelse,switch,嵌套的switch
条件运算符 ? :,可以用来替代 if…else 语句。
它的格式像这样Exp1 ? Exp2 : Exp3;
如果 Exp1 为真,则计算 Exp2 的值,否则计算Exp3的值

1.9C的循环
循环语句允许我们多次执行一个语句或语句组。
一般有while语句,for语句,do…while语句和多种组合嵌套。
为了方便控制,我们有break,continue,goto(尽量不要使用)
for 语句一个条件为空可以造成无限循环,可以按 Ctrl + C 键终止一个无限循环。

具体使用while和for来处理问题,注意观察两者的不同之处。
输 1~100 以内的所有的奇数和偶数的和
用while做

#include  <stdio.h>

int main(){
    int  sum=0;
    int  num=1;
    int  sum2=0;
    int  num2=2;
    while(num<100){
        sum=sum+num;
        num=num+2;
    }
    printf("奇数和为:%d\n",sum);

    while(num2<=100){
        sum2=sum2+num2;
        num2=num2+2;
    }
    printf("偶数和为:%d\n",sum2);
}

用for来做

#include  <stdio.h>

int main(){

    int  sum=0;
    int sum2=0;
    int num,num2;
    for(num=1;num<100;num=num+2){
        sum=sum+num;
    }

    printf("奇数和%d\n",sum);
    for(num2=2;num2<=100;num2=num2+2){
        sum2=sum2+num2;
    }
    printf("偶数和%d\n",sum2);
}

又一个例子,求100以内的素数

#include<stdio.h>
#include<math.h>
int main(){
    int i,j;
    printf("100以内的素数有:\n");
    for(i=2;i<100;i++){
        for(j=2;j<sqrt(i);j++){
            if(i%j==0){
            break;
            }
        }
            if(j>sqrt(i)){
            printf("%d,\t",i);
            }
    }
}

1.10C的函数
1.每个 C 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。

2.在 C 语言中,函数由一个函数头和一个函数主体组成。

3.当您在一个源文件中定义函数且在另一个文件中调用函数时,函数声明是必需的。在这种情况下,您应该在调用函数的文件顶部声明函数。

4.如果函数要使用参数,则必须声明接受参数值的变量。这些变量称为函数的形式参数。形式参数就像函数内的其他局部变量,在进入函数时被创建,退出函数时被销毁。分为传值和引用两种。
传值调用 该方法把参数的实际值复制给函数的形式参数。在这种情况下,修改函数内的形式参数不会影响实际参数。
引用调用 通过指针传递方式,形参为指向实参地址的指针,当对形参的指向操作时,就相当于对实参本身进行的操作。

5.根据函数能否被其他源文件调用,将函数区分为内部函数和外部函数。
如果一个函数只能被本文件中其他函数所调用,它称为内部函数,又称静态函数。在定义内部函数时,在函数名和函数类型的前面加 static。
例如static int max(int a,int b)
如果在定义函数时,在函数的首部的最左端加关键字 extern,则此函数是外部函数,可供其它文件调用。如果在定义函数时省略 extern,则默认为外部函数。在对此函数作声明时,要加关键字 extern,表示该函数是在其他文件中定义的外部函数。
6.格式占位符(%)是在C/C++语言中格式输入函数,如 scanf、printf 等函数中使用。其意义就是起到格式占位的意思,表示在该位置有输入或者输出。
举例scanf("%d,%d,%d",&a,&b,&c); // 从键盘输入三个整数,用逗号分隔   scanf("%c", &s); // 从键盘输入一个字符   scanf("%f", &f); // 从键盘输入一个浮点型数据   printf("%d\n",a); // 输出一个整数   printf("%f\n",b); // 输出一个浮点数   printf("%s\n",c); // 输出一个字符, 其中\n表示换行

1.11C的作用域
1.局部变量
在某个函数或块的内部声明的变量称为局部变量。它们只能被该函数或该代码块内部的语句使用。
2.全局变量
全局变量是定义在函数外部,通常是在程序的顶部。全局变量在整个程序生命周期内都是有效的,在任意的函数内部能访问全局变量。全局变量可以被任何函数访问。也就是说,全局变量在声明后整个程序中都是可用的。
在程序中,局部变量和全局变量的名称可以相同,但是在函数内,如果两个名字相同,会使用局部变量值,全局变量不会被使用。
3.形式参数
函数的参数,形式参数,被当作该函数内的局部变量,如果与全局变量同名它们会优先使用。
从字面上理解,所谓形式参数即只只是声明了一个作为参数的变量,并未直接进行赋值使用,而实际参数则相反。
关于形参和实参的举例理解

#include <stdio.h>

int test(int,int); // 形参,只声明

int main()
{
    int a,b;
    printf("%d",test(5,3)); // 实参,已赋值
}

int test(int a,int b) // 形参
{
    a=a+b;
    return a;
}

当局部变量被定义时,系统不会对其初始化,您必须自行对其初始化。定义全局变量时,系统会自动对其初始化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值