C语言选择、循环、函数、数组与操作符

 更新时间:2022年04月14日 13:00:52   作者:野猪佩奇`  
这篇文章主要介绍了C语言选择、循环、函数、数组与操作符,文章基于C语言展开对主题的详细介绍,下文内容需要的小伙伴可以参考一下

1、选择语句

如果你好好学习,校招时拿一个好offer,走上人生巅峰。如果你不学习,毕业等于失业,回家卖红薯。这就是选择!

#include<stdio.h>
int main()
{
    int a = 0;
    printf("1:好好学习,拿大厂offer     2、宿舍摆烂,毕业即失业\n\n");
    printf("请选择 1 或者 0 :->");
    scanf("%d", &a);
    if (a == 1)
    {
        printf("加油,为你点赞!\n");
    }
    else
    {
        printf("回家卖红薯!\n");
    }
    return 0;
}


2、循环语句

C语言中有三种循环,分别是:for循环、while循环、do while循环,下面我用例子来演示。

for循环

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

while循环

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

do while循环

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

其中 i 为循环变量,i++ 为循环变量增值,i<10 为循环结束条件。

3、函数

函数就是一个具有特定功能的代码块,其作用是将代码进行封装,以提高代码的重用性,提高开发效率。

#include<stdio.h>

//Add就是一个函数,用来计算两个参数的和
int Add(int x, int y)   // 开头的int:函数的返回值  中间的int:参数的类型   x、y:函数的参数
{
    return x + y;
}

int main()
{
    int a = 0;
    int b = 0;
    int ret = Add(a, b);  //调用Add函数
    printf("%d\n", ret);
    return 0;
}

4、数组

数组的概念

数组是具有相同元素类型的集合。

数组的定义方式

#include<stdio.h>
int main()
{
    //第一种定义方式:指定大小,并对其进行初识化
    int a1[10] = { 1,2,3,4,5,6,7,8,9,10 };
    //第二种定义方式:指定大小,但不初识化
    char a2[10];
    //第三种定义方式:不指定大小,但必须得初始化,它会根据你初始化元素个个数自动计算数组的大小
    float a3[] = { 1.0,2.0,3.0 };
    return 0;
}

数组的下标

C语言规定:数组的每个元素都有一个下标,且数组下标是从0开始的。数组可以通过下标来访问数组元素。

数组的简单使用

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

5、操作符

C语言的操作符涉及到的细节以及知识面都比较广,在这里我只是简单的介绍一部分操作符的基本使用,更多的细节我会在后面的文章中进行讲解。

1、算术操作符

+ - * / %

2、移位操作符

>> <<

3、位操作符

& ^ |

4、赋值操作符

= += -= *= /= &= ^= |= >>= <<=

#include<stdio.h>
int main()
{
    int a = 10;
    if (a == 20)  // ==:判断语句,判断 a 与 20 是否相等
    {
        printf("判断:%d\n", a);
    }
    if (a = 20)  // =:赋值语句,把 10 赋给 a,这条语句始终为真
    {
        printf("赋值:%d\n", a);
    }
    return 0;
}

5、单目操作符

  • ! 逻辑反操作
  • - 负值
  • + 正值
  • & 取地址
  • sizeof 操作数的类型长度(以字节为单位)
  • ~ 对一个数的二进制按位取反
  • – 前置、后置–
  • ++ 前置、后置++
  • * 间接访问操作符(解引用操作符)
  • (类型) 强制类型转换
#include<stdio.h>
int main()
{
	int a = 10;
	int b = a++;    //后置++,先使用,再++,即先把 a = 10 赋给 b ,a 再++,执行后 b=10,a=11
	int c = ++a;    //前置++,先++,再使用,即先让 a++ 变成 12,再把 a 赋给 c ,执行后 c=12,a=12;
	printf("a = %d\nb = %d\nc = %d", a, b, c);
	return 0;
}
1

6、关系操作

> >= < <= != ==

7、逻辑操作符

&& 逻辑与
|| 逻辑或

#include<stdio.h>
int main()
{
    int a = 10;
    int b = 20;
    if (a == 10 && b == 20)   //逻辑与,必须两个条件都为真if语句才会执行
    {
        printf("a && b\n");
    }
    if (a == 10 || b == 30)   //逻辑或,只有两个条件都为假时if语句才不会执行
    {
        printf("a || b\n");
    }
    return 0;
}

8、条件操作符

exp1 ? exp2 : exp3

#include<stdio.h>
int main()
{
    int a = 10;
    int b = 20;
    int max = a > b ? a : b;  //条件操作符,如果 a>b 条件成立,就把 a 赋给 max,否则 b 赋给 max
    printf("max = %d\n", max);
    return 0;
}

9、逗号表达式

exp1, exp2, exp3, …expN

#include<stdio.h>
main()
{
    int x, y, z;
    x = y = 1;
    //逗号表达式,从左向右依次执行每个运算,但是只取最后一个逗号的结果
    z = (x++, y++, ++y);    //先执行前面两个逗号,x++ -> x = 2, y++ -> y=2, 再最后一个逗号,z=++y,前置++,所以z=y=3
    printf("x = %d\ny = %d\nz = %d\n", x, y, z);
    return 0;
}

这里要特别注意:赋值运算符的优先级是高于逗号表达式的,也就是说,如果这里 z 后面没有括号,那么编译器会最先将 x 的值赋给 z,再执行后面的逗号表达式。

#include<stdio.h>
main()
{
    int x, y, z;
    x = y = 1;
    //逗号表达式,从左向右依次执行每个运算,但是只取最后一个逗号的结果
    //赋值运算符优先级高于逗号表达式,先将 x 赋给 z,那么 z = 1;
    //再执行前面两个逗号,x++ -> x = 2, y++ -> y=2, 再最后一个逗号,++y -> y = 3
    z = x++, y++, ++y;
    printf("x = %d\ny = %d\nz = %d\n", x, y, z);
    return 0;
}

10、下标引用、函数调用和结构成员

[] () . ->

#include<stdio.h>
struct Stu {         //定义一个结构体类型
    char name[15];
    int age;
    char sex[6];
};
int main()
{
    struct Stu s = { "张三",20,"男" };   //用结构体类型定义一个结构体变量 s 并对其初始化
    printf("%s\t%d\t%s\n", s.name, s.age, s.sex);  //用 . 操作符对结构体成员进行访问
    return 0;
}

到此这篇关于C语言选择、循环、函数、数组与操作符的文章就介绍到这了,更多相关C语言函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++的友元和内部类你了解吗

    C++的友元和内部类你了解吗

    这篇文章主要为大家介绍了C++的友元和内部类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • C++中const的用法详细总结

    C++中const的用法详细总结

    以下是对C++中const的用法进行了详细的总结分析,需要的朋友可以过来参考下,希望对大家有所帮助
    2013-09-09
  • 关于C语言和命令行之间的交互问题

    关于C语言和命令行之间的交互问题

    这篇文章主要介绍了C语言和命令行之间的交互,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-07-07
  • 在编程语言中怎样定义队列及其使用(C++)

    在编程语言中怎样定义队列及其使用(C++)

    这篇文章主要介绍了在编程语言中怎样定义队列,本文主要根据c++来介绍,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • C语言形参与实参使用的差别讲解

    C语言形参与实参使用的差别讲解

    形参出现在函数定义中,在整个函数体内都可以使用, 离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能使用,形参和实参的功能是作数据传送。发生函数调用时, 主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送
    2023-02-02
  • 详解C++中的析构函数

    详解C++中的析构函数

    这篇文章主要介绍了C++中的析构函数的相关知识,文中讲解非常详细,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-06-06
  • C++ 类模板、函数模板全特化、偏特化的使用

    C++ 类模板、函数模板全特化、偏特化的使用

    这篇文章主要介绍了C++ 类模板、函数模板全特化、偏特化的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • C++ 自由存储区是否等价于堆你知道吗

    C++ 自由存储区是否等价于堆你知道吗

    自由存储是C++中通过new与delete动态分配和释放对象的抽象概念,而堆(heap)是C语言和操作系统的术语,是操作系统维护的一块动态分配内存
    2021-08-08
  • Qt实现高精度定时器

    Qt实现高精度定时器

    这篇文章主要为大家详细介绍了Qt实现高精度定时器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • 类成员函数的重载、覆盖与隐藏之间的区别总结

    类成员函数的重载、覆盖与隐藏之间的区别总结

    以下是对类成员函数的重载、覆盖与隐藏之间的区别进行了详细的总结分析,需要的朋友可以过来参考下。希望对大家有所帮助
    2013-10-10

最新评论