【C语言】第一章:初识C语言(三)

目录

五、注释

(一)注释的好处

(二)注释风格

六、选择语句

七、循环语句

八、函数

(一)函数的引入

(二)如何写函数

九、数组

(一)数组的定义

(二)数组的下标

(三)数组的使用

十、操作符

(一)算术操作符

1./ 和 %的基本使用

2.经典的错误,标准的零分

(二)移位操作符

(三)位操作符

(四)赋值操作符

(五)单目位操作符

1. ! 操作符

2. + - 

3. & * ~

4. sizeof

5. ++ --

6.(类型)

(六)关系操作符

(七)逻辑操作符

(八)条件操作符

(九)逗号表达式

(十)下标引用,函数调用,结构成员

1. []

2. ()

3. .->

总结


五、注释

(一)注释的好处

        C语言中,注释可以提高代码的可读性和可维护性,同时也有助于团队协作和代码的重构。

        以下是注释的好处:

1.提高代码可读性:注释可以帮助其他开发者理解你的代码,特别是对于一些复杂的算法或者代码逻辑,注释可以让其他人更容易理解思路。

2.方便代码维护:当需要修改代码时,注释可以提供关于代码目的,实现方式和细节的信息,这些有助于确保修改后的代码能够正确地工作。

3.帮助团队协作:注释可以帮助团队成员更好地理解彼此的代码,避免重复工作和冲突,同时可以提高团队的效率和生产力。

4.便于代码重构:在进行代码重构时,注释可以提供有关代码目的和实现方式的信息,这有助于确保重构后的代码仍然满足原来的需求。

(二)注释风格

        在C语言中,常见的注释风格有以下两种:

1.行注释:在代码行的末尾添加注释,可以使用双斜线(//)来表示

        例如:

int main ()
{
    int x = 1; //这是一行注释
    return 0;
}

2.块注释:用/* 和 */把注释包裹起来,可以跨越多行。(不可嵌套注释)

        例如:

int main ()
{
    int x = 1;
    /* 这是一行注释,
       这还是一行注释*/
    return 0;
}

无论使用那种注释风格,最重要的是保持一致性,并且遵循团队内部代码风格规范。这有助于代码在不同的开发者之间更容易阅读和理解。

六、选择语句

        人生处处有选择,C语言也拥有选择语句,用于根据特定条件的结果来执行不同的代码块。此处先介绍两种常见的选择语句

       (一) if语句

                1.首先需要定义一个条件,例如一个变量x

                2.然后利用if关键字,判断条件是否为真

                3.如果条件为真,则执行if语句后面的代码块。

                4.如果条件为假,则跳过if语句后面的代码块,执行else语句后面的代码块。

        例如,以下代码可以判断一个数是否为正数

#include <stdio.h>
int main ()
{
    int x = 0;
    scanf ("%d",&x);
    if (x > 0)
    {
        printf ("x是正数\n");
    } 
    else 
    {
        printf ("x不是正数\n");
    }
    return 0;
}

        (二)switch语句

                1.首先需要定义一个表达式,例如变量DayOfWeek

                2.然后使用switch关键字,根据表达式的值选择执行哪个case语句块。

                3.每个case语句块后面都需要使用break关键字来终止switch语句。

                4.如果表达式的值与任何一个case语句块都不匹配,则执行default语句块中的代码

        例如,以下代码可以根据一个数字的值来输出对应的星期

#include <stdio.h>
int main ()
{
    int DayOfWeek = 0;
    scanf ("%d",&DayOfWeek);
    switch (DayOfWeek)
        case 1:
        {
            printf ("星期一\n");
            break;
        }
        case 2:
        {
            printf ("星期二\n");
            break;
        }
        case 3:
        {
            printf ("星期三\n");
            break;
        }
        case 4:
        {
            printf ("星期四\n");
            break;
        }
        case 5:
        {
            printf ("星期五\n");
            break;
        }
        case 6:
        {
            printf ("星期六\n");
            break;
        }
        case 7:
        {
            printf ("星期日\n");
            break;
        }
    return 0;
}

七、循环语句

        循环语句用于重复执行一段代码,常见的循环语句一共有三种

        while循环

        do while循环

        for 循环

(一)while循环

        1.首先需要定义一个循环条件,例如一个变量i

        2.然后使用while关键字,设置循环条件。

        3.在循环体中,编写需要重复执行的重复操作

        4.在循环体的最后,需要更新循环条件的值

例如,以下代码可以输出1到10之间的所有奇数

#include <stdio.h>
int main ()
{
    int i = 1;
    while (i <= 10)
    {
        if (i % 2 != 0)
        {
            printf ("%d\n",i);
        }
        i++;
    }    
    return 0;
}

(二)do - while循环

        1.首先需要定义一个循环条件,例如一个变量num

        2.然后使用do关键字,设置循环体

        3.在循环体中,编写需要执行的重复操作

        4..在循环体的最后,需要更新循环条件的值

        5.最后使用while关键字,设置循环条件

例如,以下代码可以让用户重复输入数字,直到输入的数字等于0

#include <stdio.h>
int main ()
{
    int num;
    do 
    {
        printf ("请输入一个数字(输入0退出):");
        scanf ("%d",&num);
    }
    while (num != 0);
}

(三)for循环

        1.首先需要定义一个循环变量i,并初始化他的值

        2.然后使用for关键字,设置循环条件和更新表达式

        3.在循环体中,编写需要执行的重复操作

例如,以下代码可以输出1到10之间的所有整数

#include <stdio.h>
int main ()
{
    for (int i = 1; i <= 10; i++)
    {
        printf ("%d\n",i);
    }
    return 0;
}

八、函数

(一)函数的引入

        函数可以将一组代码封装在一起,以便在程序中多次调用。这样可以使程序更加简洁、易于维护和理解。

        函数由函数名、参数列表、返回值和函数体组成。函数名用于唯一标识函数,参数列表用于传递参数,返回值用于返回函数的执行结果,函数体是一组语句块,用于实现函数的功能。

(二)如何写函数

        首先需要定义函数的返回类型、函数名和参数列表。

        参数列表包括参数的数据类型和参数的变量名,多个参数之间用逗号分割

        函数体中编写需要执行的代码,可以利用参数来操作,也可以返回一个值作为函数的结果。

例如,以下代码定义了一个名为Add的函数,用于计算两个整数的和

#include <stdio.h>
Add(int x,int y)
{
    int result = x + y;
    return result;
}
int main ()
{
    int a = 0;
    int b = 0;
    scanf ("%d %d",&a,&b);
    int sum = Add(a,b);
    return 0;
}

九、数组

(一)数组的定义

        数组是一组相同类型的元素的集合,可以通过下标来访问每个元素。数组的定义包括数组类型、数组名和数组的大小。数组的大小表示书注重元素的个数,可以是一个常量或一个变量(变长数组,后文详解)。

例如,以下代码定义了一个名为arr的整型数组,包含5个元素

#include <stdio.h>
int main ()
{
    int arr[5];
    return 0;
}

(二)数组的下标

        数组的下标从0开始,表示第一个元素,依次递增。可以使用下标来访问数组中的元素。下标应该是一个常量。

        例如,以下代码定义了一个名为arr的整型数组,包含5个元素,并给第二个元素赋值为10,然后输出第二个元素。

#include <stdio.h>
int main ()
{
    int arr[5];
    arr[1] = 10;
    printf ("arr[1]的值为:%d\n",arr[1]);
    return 0;
}

输出结果为:arr[1]的值为:10

(三)数组的使用

        可以使用循环语句来遍历数组中的所有元素,以实现对数组的操作。

例如,以下代码定义了一个名为arr的整型数组,包含5个元素,并使用for循环遍历数组中的所有元素,并输出每个元素的值

#include <stdio.h>
int main ()
{
    int arr[5] = {1,2,3,4,5};
    for (int i = 0; i < 5; i++)
    {
        printf("%d ",arr[i]);
    }
    return 0;
}

输出结果为:1 2 3 4 5


另外,数组也可以作为函数的参数传递,以便在函数中操作数组。在函数中,可以通过指针来访问数组中的元素。
例如,以下代码定义了一个名PrintArray的函数,用于输出一个整型数组中的所有元素

#include <stdio.h>

void PrintArray(int* arr,int len)
{
    for (int i = 0; i < len; i++)
    {
        printf ("%d ",arr[i]);
    }
}
int main ()
{
    int arr[5] = {1,2,3,4,5};
    PrintArray(arr,5);
    return 0;
}

输出结果为:1 2 3 4 5

十、操作符

(一)算术操作符

1./ 和 %的基本使用

         / 表示整除,即两个整数相除的结果向下取整。
         % 表示取模,即两个整数相除的余数。

例如,以下代码计算了两个整数相除的结果和余数:
 

#include <stdio.h>
int main() {
    int a = 10;
    int b = 3;
    int c = a / b;
    int d = a % b;
    printf("a/b的结果为%d,a%%b的余数为%d\n", c, d);
    return 0;
}

2.经典的错误,标准的零分

        在进行除法运算时,除数不能为0,否则会导致程序崩溃或返回非法结果。

例如,以下代码中尝试将一个数除以0,会导致程序崩溃:

#include <stdio.h>
int main() {
    int a = 10;
    int b = 0;
    int c = a / b;
    printf("a/b的结果为%d\n", c);
    return 0;
}

输出结果为:程序崩溃

(二)移位操作符

        移位操作符用于将一个数的二进制表示向左或向右移动指定的位数,可以实现乘以或除以2的幂的操作。

例如,以下代码将一个数左移3位,相当于将它乘以8:

#include <stdio.h>

int main() {
    int a = 5;
    int b = a << 3;
    printf("a左移3位的结果为%d\n", b);
    return 0;
}

输出结果为:a左移3位的结果为40

此处内容与二进制有关,不理解也不必妄自菲薄。后续文章将有详解。

(三)位操作符

        位操作符用于对二进制位进行操作,包括按位与(&)、按位或(|)、按位异或(^)和按位取反(~)。

例如,以下代码使用按位与操作符,将两个数的二进制位进行与运算:

#include <stdio.h>

int main() {
    int a = 5;
    int b = 3;
    int c = a & b;
    printf("a和b按位与的结果为%d\n", c);
    return 0;
}

输出结果为:a和b按位与的结果为1

此处内容与二进制有关,不理解也不必妄自菲薄。后续文章将有详解。

(四)赋值操作符

        赋值操作符用于将一个值赋给一个变量,常见的赋值操作符有=、+=、-=、*=、/=、%=、&=、|=、^=、<<=和>>=。

例如,以下代码使用+=操作符,将一个数加上另一个数的值,并将结果赋给该数:

#include <stdio.h>
int main() {
    int a = 5;
    int b = 3;
    a += b;
    printf("a的值为%d\n", a);
    return 0;
}

输出结果为:a的值为8

(五)单目位操作符

1. ! 操作符

        !操作符用于对一个表达式的值进行取反操作,如果表达式的值为0,则取反后为1,反之为0。

例如,以下代码使用!操作符,判断一个数是否为0:

#include <stdio.h>

int main() {
    int a = 0;
    if (!a) {
        printf("a为0\n");
    } else {
        printf("a不为0\n");
    }
    return 0;
}

输出结果为:a为0

2. + - 

        +和-操作符分别表示正号和负号,可以用于对一个数进行取正或取负操作。

例如,以下代码使用+和-操作符,对一个数进行取正和取负操作:

#include <stdio.h>

int main() {
    int a = 5;
    int b = -a;
    int c = +b;
    printf("a的值为%d,b的值为%d,c的值为%d\n", a, b, c);
    return 0;
}

输出结果为:a的值为5,b的值为-5,c的值为-5

3. & * ~

        &操作符用于获取一个变量的地址,即取地址操作。
        *操作符用于获取一个指针指向的变量的值,即取值操作。
        ~操作符用于对一个数的二进制表示进行取反操作。

         暂不详解

4. sizeof

        sizeof操作符用于获取一个数据类型或一个变量的大小,单位为字节。

例如,以下代码使用sizeof操作符,获取一个整型变量和一个整型数组的大小:
 

#include <stdio.h>

int main() {
    int a = 5;
    int b[5] = {1, 2, 3, 4, 5};
    printf("a的大小为%lu,b的大小为%lu\n", sizeof(a), sizeof(b));
    return 0;
}

输出结果为:a的大小为4,b的大小为20

5. ++ --

        ++操作符用于将一个变量的值加1,--操作符用于将一个变量的值减1。

int main()
{
	int a = 10;
	int b = a++;//后置++,先使用,后++
	int b=a,a=a+1;
 
	int b = ++a;//前置++,先++,后使用
	a=a+1,b=a;
 
	int b = a--;
	int b = a,a=a-1;
 
	int b = --a;
	a=a-1,b=a;
 
	printf("a=%d b=%d\n", a, b);
	return 0;
}

主要区别前置++,与后置++的区别

        前置是先++后引用,等价于: a = a+1 , b = a

        后置是先引用后++,等价于: b = a , a = a + 1

 又一个经典的错误,标准的零分

#include<stdio.h>
int main()
{
	int b = 0;
	int a = 4;
	b = (a++);
	printf("%d", b);
	return 0;
}

给++带上括号,会先在括号内++完毕之后,再把a赋值给b吗?

如果可以,那么输出应该是5
请自行尝试

6.(类型)

        (类型)操作符用于将一个变量或表达式的值转换为指定的数据类型。

例如,以下代码使用(int)操作符,将一个浮点数转换为整型:

#include <stdio.h>

int main() {
    float a = 3.14;
    int b = (int)a;
    printf("a的值为%f,b的值为%d\n", a, b);
    return 0;
}

输出结果为:a的值为3.140000,b的值为3

(六)关系操作符

        关系操作符用于比较两个值的大小关系,包括>、>=、<、<=、==和!=。其中,==表示相等,!=表示不等。(请特别区分:== 和 =)

例如,以下代码使用逻辑操作符,判断两个数的大小关系:

#include <stdio.h>

int main() {
    int a = 5;
    int b = 3;
    if (a > b) {
        printf("a比b大\n");
    } else {
        printf("a比b小或者相等\n");
    }
    return 0;
}

输出结果为:a和b都是正数

(七)逻辑操作符

        逻辑操作符用于对两个或多个表达式进行逻辑运算,包括&&、||和!。其中,&&表示逻辑与,||表示逻辑或,!表示逻辑非。

例如,以下代码使用逻辑操作符,判断两个数的大小关系:

#include <stdio.h>

int main() {
    int a = 5;
    int b = 3;
    if (a > 0 && b > 0) {
        printf("a和b都是正数\n");
    } else {
        printf("a和b中至少有一个非正数\n");
    }
    return 0;
}

输出结果为:a和b都是正数

(八)条件操作符

        条件操作符用于根据一个表达式的值来选择两个可能的值之一,其语法为:表达式1 ? 表达式2 : 表达式3,如果表达式1的值为真,则返回表达式2的值,否则返回表达式3的值。

(九)逗号表达式

        逗号表达式用于将多个表达式连接起来,其值为最后一个表达式的值。
        按下不表。

(十)下标引用,函数调用,结构成员

1. []

        []操作符用于访问数组中的元素,需要指定元素的下标。

例如,以下代码使用[]操作符,访问一个整型数组中的元素:

#include <stdio.h>

int main() {
    int a[5] = {1, 2, 3, 4, 5};
    int b = a[2];
    printf("a[2]的值为%d\n", b);
    return 0;
}

输出结果为:a[2]的值为3

2. ()

        ()操作符用于调用函数或指定表达式的优先级。

例如,以下代码使用()操作符,调用一个自定义函数:

#include <stdio.h>

int add(int a, int b) {
    return a + b;
}

int main() {
    int a = 5;
    int b = 3;
    int c = add(a, b);
    printf("%d和%d的和为%d\n", a, b, c);
    return 0;
}

输出结果为:5和3的和为8

3. .->

        .和->操作符用于访问结构体中的成员,.用于访问结构体变量的成员,->用于访问指向结构体的指针的成员。

        按下不表

总结

        本节主要讲述了,注释,选择,循环,函数,数组,以及操作符的简单基本使用,暂时只需了解最基本的概念即可。希望能对读者有很大的帮助。不要忘记留下你免费的赞赞和关注哦。

        欲知后事,请看下节

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值