当前位置 博文首页 > Mr.Rui的博客:从0基础入门C语言(三)

    Mr.Rui的博客:从0基础入门C语言(三)

    作者:[db:作者] 时间:2021-08-24 18:46

    初识C语言(三)

    本章目录

    • 什么是C语言
    • 第一个C语言程序
    • 数据类型
    • 变量、常量
    • 字符串+转义字符+注释
    • 选择语句
    • 循环语句
    • 函数
    • 数组
    • 操作符
    • 常见关键字
    • define 定义常量和宏
    • 指针
    • 结构体

    九、数组

    什么是数组

    C语言支持数组结构,它可以存储一个固定大小相同类型元素的顺序结合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。

    我们知道,要想把数据放入内存,必须先要分配内存空间。放入4个整数,就得分配4个int类型的内存空间:

    int a[4];
    

    这样,就在内存中分配了4个int类型的内存空间,共 4×4=16 个字节,并为它们起了一个名字,叫a。

    我们把这样的一组数据的集合称为数组(Array),它所包含的每一个数据叫做数组元素(Element),所包含的数据的个数称为数组长度(Length),例如int a[4];就定义了一个长度为4的整型数组,名字是a。

    数组的使用

    // 数组
    int main()
    {
    	int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
    	int i = 0;   // 打印单个值
    	print("%d ",arr[4])
    	while (i < 10)
    	{
    		printf("%d ",arr[i]);   // 通过while循环打印出所有的值 
    		i++;
    	}
    	return 0;
    

    在这个main函数立里面我们创建了一个arr的数组,长度为10
    打印单个数组的话我们可以直接打印arr[4] 找到其下表所对应的值,然后使用while循环打印出素有的值。

    十、操作符

    算术运算符

    下表显示了 C 语言支持的所有算术运算符。假设变量 A 的值为 10,变量 B 的值为 20,则:在这里插入图片描述
    代码实例:

    #include <stdio.h>
     
    int main()
    {
       int a = 21;
       int b = 10;
       int c ;
     
       c = a + b;
       printf("Line 1 - c 的值是 %d\n", c );
       c = a - b;
       printf("Line 2 - c 的值是 %d\n", c );
       c = a * b;
       printf("Line 3 - c 的值是 %d\n", c );
       c = a / b;
       printf("Line 4 - c 的值是 %d\n", c );
       c = a % b;
       printf("Line 5 - c 的值是 %d\n", c );
       c = a++;  // 赋值后再加 1 ,c 为 21,a 为 22
       printf("Line 6 - c 的值是 %d\n", c );
       c = a--;  // 赋值后再减 1 ,c 为 22 ,a 为 21
       printf("Line 7 - c 的值是 %d\n", c );
     
    }
    

    运行结果:
    Line 1 - c 的值是 31
    Line 2 - c 的值是 11
    Line 3 - c 的值是 210
    Line 4 - c 的值是 2
    Line 5 - c 的值是 1
    Line 6 - c 的值是 21
    Line 7 - c 的值是 22

    以下实例演示了 a++ 与 ++a 的区别:

    #include <stdio.h>
     
    int main()
    {
       int c;
       int a = 10;
       c = a++; 
       printf("先赋值后运算:\n");
       printf("Line 1 - c 的值是 %d\n", c );
       printf("Line 2 - a 的值是 %d\n", a );
       a = 10;
       c = a--; 
       printf("Line 3 - c 的值是 %d\n", c );
       printf("Line 4 - a 的值是 %d\n", a );
     
       printf("先运算后赋值:\n");
       a = 10;
       c = ++a; 
       printf("Line 5 - c 的值是 %d\n", c );
       printf("Line 6 - a 的值是 %d\n", a );
       a = 10;
       c = --a; 
       printf("Line 7 - c 的值是 %d\n", c );
       printf("Line 8 - a 的值是 %d\n", a );
     
    }
    

    运行结果:
    先赋值后运算:
    Line 1 - c 的值是 10
    Line 2 - a 的值是 11
    Line 3 - c 的值是 10
    Line 4 - a 的值是 9
    先运算后赋值:
    Line 5 - c 的值是 11
    Line 6 - a 的值是 11
    Line 7 - c 的值是 9
    Line 8 - a 的值是 9

    关系运算符

    下表显示了 C 语言支持的所有关系运算符。假设变量 A 的值为 10,变量 B 的值为 20,则:在这里插入图片描述
    代码实例:

    #include <stdio.h>
     
    int main()
    {
       int a = 21;
       int b = 10;
       int c ;
     
       if( a == b )
       {
          printf("Line 1 - a 等于 b\n" );
       }
       else
       {
          printf("Line 1 - a 不等于 b\n" );
       }
       if ( a < b )
       {
          printf("Line 2 - a 小于 b\n" );
       }
       else
       {
          printf("Line 2 - a 不小于 b\n" );
       }
       if ( a > b )
       {
          printf("Line 3 - a 大于 b\n" );
       }
       else
       {
          printf("Line 3 - a 不大于 b\n" );
       }
       /* 改变 a 和 b 的值 */
       a = 5;
       b = 20;
       if ( a <= b )
       {
          printf("Line 4 - a 小于或等于 b\n" );
       }
       if ( b >= a )
       {
          printf("Line 5 - b 大于或等于 a\n" );
       }
    }
    

    运行结果:
    Line 1 - a 不等于 b
    Line 2 - a 不小于 b
    Line 3 - a 大于 b
    Line 4 - a 小于或等于 b
    Line 5 - b 大于或等于 a

    逻辑运算符

    下表显示了 C 语言支持的所有关系逻辑运算符。假设变量 A 的值为 1,变量 B 的值为 0,则:在这里插入图片描述
    代码实例:

    #include <stdio.h>
     
    int main()
    {
       int a = 5;
       int b = 20;
       int c ;
     
       if ( a && b )
       {
          printf("Line 1 - 条件为真\n" );
       }
       if ( a || b )
       {
          printf("Line 2 - 条件为真\n" );
       }
       /* 改变 a 和 b 的值 */
       a = 0;
       b = 10;
       if ( a && b )
       {
          printf("Line 3 - 条件为真\n" );
       }
       else
       {
          printf("Line 3 - 条件为假\n" );
       }
       if ( !(a && b) )
       {
          printf("Line 4 - 条件为真\n" );
       }
    }
    

    运行结果:
    Line 1 - 条件为真
    Line 2 - 条件为真
    Line 3 - 条件为假
    Line 4 - 条件为真

    位运算符

    位运算符作用于位,并逐位执行操作。&、 | 和 ^ 的真值表如下所示:在这里插入图片描述
    假设如果 A = 60,且 B = 13,现在以二进制格式表示,它们如下所示:

    A = 0011 1100

    B = 0000 1101


    A&B = 0000 1100

    A|B = 0011 1101

    A^B = 0011 0001

    ~A = 1100 0011

    下表显示了 C 语言支持的位运算符。假设变量 A 的值为 60,变量 B 的值为 13,则:

    在这里插入图片描述
    代码实例:

    #include <stdio.h>
     
    int main()
    {
     
       unsigned int a = 60;    /* 60 = 0011 1100 */  
       unsigned int b = 13;    /* 13 = 0000 1101 */
       int c = 0;           
     
       c = a & b;       /* 12 = 0000 1100 */ 
       printf("Line 1 - c 的值是 %d\n", c );
     
       c = a | b;       /* 61 = 0011 1101 */
       printf("Line 2 - c 的值是 %d\n", c );
     
       c = a ^ b;       /* 49 = 0011 0001 */
       printf("Line 3 - c 的值是 %d\n", c );
     
       c = ~a;          /*-61 = 1100 0011 */
       printf("Line 4 - c 的值是 %d\n", c );
     
       c = a << 2;     /* 240 = 1111 0000 */
       printf("Line 5 - c 的值是 %d\n", c );
     
       c = a >> 2;     /* 15 = 0000 1111 */
       printf("Line 6 - c 的值是 %d\n", c );
    }
    

    运行结果:
    Line 1 - c 的值是 12
    Line 2 - c 的值是 61
    Line 3 - c 的值是 49
    Line 4 - c 的值是 -61
    Line 5 - c 的值是 240
    Line 6 - c 的值是 15

    赋值运算符

    在这里插入图片描述
    代码实例:

    #include <stdio.h>
     
    int main()
    {
       int a = 21;
       int c ;
     
       c =  a;
       printf("Line 1 - =  运算符实例,c 的值 = %d\n", c );
     
       c +=  a;
       printf("Line 2 - += 运算符实例,c 的值 = %d\n", c );
     
       c -=  a;
       printf("Line 3 - -= 运算符实例,c 的值 = %d\n", c );
     
       c *=  a;
       printf("Line 4 - *= 运算符实例,c 的值 = %d\n", c );
     
       c /=  a;
       printf("Line 5 - /= 运算符实例,c 的值 = %d\n", c );
     
       c  = 200;
       c %=  a;
       printf
    
    下一篇:没有了