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

目录
  • 1、选择语句
  • 2、循环语句
  • 3、函数
  • 4、数组
  • 5、操作符
  • 5、单目操作符
  • 6、关系操作
  • 7、逻辑操作符
  • 8、条件操作符
  • 9、逗号表达式
  • 10、下标引用、函数调用和结构成员

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语言函数内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Android自定义可循环的滚动选择器CycleWheelView

    最近碰到个项目要使用到滚动选择器,原生的NumberPicker可定制性太差,不大符合UI要求. 网上开源的WheelView是用ScrollView写的,不能循环滚动,而且当数据量很大时要加载的Item太多,性能非常低. 然后,还是自己写一个比较靠谱,用的是ListView实现的.写完自己体验了一下,性能不错,再大的数据也不怕了. 感觉不错,重新封装了一下,提供了一些接口可以直接按照自己的需求定制,调用方法在MainActivity中. 补个图片: 不多说了,直接上代码: CycleWheel

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

    目录 1.选择语句 2.循环语句 3.函数 4.数组 5.操作符 5.单目操作符 6.关系操作 7.逻辑操作符 8.条件操作符 9.逗号表达式 10.下标引用.函数调用和结构成员 1.选择语句 如果你好好学习,校招时拿一个好offer,走上人生巅峰.如果你不学习,毕业等于失业,回家卖红薯.这就是选择! #include<stdio.h> int main() {     int a = 0;     printf("1:好好学习,拿大厂offer     2.宿舍摆烂,毕业即失业\n

  • C语言 详解如何删除有序数组中的重复项

    目录 删除有序数组中的重复项Ⅰ a.思路 b.图解 c.代码 d.思考 删除有序数组中的重复项Ⅱ a.思路 b.图解 c.代码 d.思考 删除有序数组中的重复项Ⅰ a.思路 定义变量 int dest=0,cur=1,nums[cur]与nums[dest]逐一比较. nums[cur]!=nums[dest],将nums[cur]放入dest下一个位置,更新dest. nums[cur]!=nums[dest],cur移动. cur==numsSize,结束.返回dest+1. b.图解 c.

  • PowerShell使用match操作符来筛选数组

    先看下面这个例子: PS C:\Users\Hong> (ipconfig) -match 'IPv4' IPv4 地址 . . . . . . . . . . . . : 192.168.1.102 IPv4 地址 . . . . . . . . . . . . : 192.168.193.1 IPv4 地址 . . . . . . . . . . . . : 192.168.93.1 我们知道ipconfig是显示当前计算机的TCP/IP配置信息的,其中有一项是IP地址.如果有多个网卡,或者

  • JavaScript实现两个数组的交集

    目录 两个数组的交集 I 两个数组的交集 II 两个数组的交集 I 给定两个数组 ​​nums1​​​ 和 ​​nums2​​ ,返回 它们的交集 .输出结果中的每个元素一定是 唯一 的.我们可以 不考虑输出结果的顺序 . 示例 1: 输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2] 示例 2: 输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[9,4]解释:[4,9] 也是可通过的 注: 1 <= nums1.length,

  • JavaScript实现数组去重的7种方法

    目录 前言 方法实现 双循环去重 indexOf方法去重1 indexOf方法去重2 相邻元素去重 利用对象属性去重 set与解构赋值去重 Array.from与set去重 总结 前言 去重是开发中经常会碰到的一个热点问题,不过目前项目中碰到的情况都是后台接口使用SQL去重,简单高效,基本不会让前端处理去重. 那么前端处理去重会出现什么情况呢?假如每页显示10条不同的数据,如果数据重复比较严重,那么要显示10条数据,可能需要发送多个http请求才能够筛选出10条不同的数据,而如果在后台就去重了的

  • c语言循环加数组实现汉诺塔问题

    目录 简介 递归的汉诺塔解法(c语言) 循环实现汉诺塔问题(c语言) 简介 汉诺塔问题是学数据结构与算法的时候会遇到的问题,相信来看本文的读者应该都对汉诺塔问题有基本的了解,理论上所有的递归都可以改成循环,常规的做法是借助堆栈,但是我一想好像用循环加数组也可以实现,于是就有了本文,实现声明,本文最后出来的算法效率不高的,比直接用递归实现还要差很多,追求算法效率的同学就不用看这个了.题目:假设有3个柱子,分别为A.B.C,A柱子上有数量为n个的空心圆盘,从上到下序号分别为1...n,要求把A柱子中

  • 详解C语言中的函数、数组与指针

    1.函数:当程序很小的时候,我们可以使用一个main函数就能搞定,但当程序变大的时候,就超出了人的大脑承受范围,逻辑不清了,这时候就需要把一个大程序分成许多小的模块来组织,于是就出现了函数概念:   函数是C语言代码的基本组成部分,它是一个小的模块,整个程序由很多个功能独立的模块(函数)组成.这就是程序设计的基本分化方法: (1) 写一个函数的关键: 函数定义:函数的定义是这个函数的实现,函数定义中包含了函数体,函数体中的代码段决定了这个函数的功能: 函数声明:函数声明也称函数原型声明,函数的原

  • 详解C语言用malloc函数申请二维动态数组的实例

    详解C语言用malloc函数申请二维动态数组的实例 C语言在程序运行中动态的申请及释放内存十分方便,一维数组的申请及释放比较简单. Sample one #include <stdio.h> int main() { char * p=(char *)malloc(sizeof(char)*5);//申请包含5个字符型的数组 free(p); return 0; } 是否申请二维动态内存也如此简单呢?答案是否定的.申请二维数组有一下几种方法 Sample two /* 申请一个5行3列的字符型

  • C语言入门篇--函数及数组用法

    目录 函数 1.函数的作用 2.函数的构成 (1)返回值 (2)函数名 (3)形参列表 (4)函数体 数组 1.定义数组 1.1不进行初始化 1.2进行初始化 1.3不给定数组元素个数 2.数组的经典用法 2.1求数组大小.元素大小.元素个数 2.2遍历 面向过程编程:C语言是面向过程的语言:在C语言中,把大部分的功能以一个个函数呈现,就称之为面向过程编程: 函数 是面向过程编程最关键的语法结构. 1.函数的作用 1.从工程上讲,函数可以让我们的代码更具有结构性,让代码更好看. 2.函数可以提升

  • PHP循环遍历数组的3种方法list()、each()和while总结

    ①each()函数 each()函数需要传递一个数组作为参数,返回数组中当前元素的键/值对,并向后移动数组指针到下一个元素的位置.键/值对被返回带有4个元素的关联和索引混合的数组,键名分别为0.1.key和value.其中键名0和key对应的值是一样的,是数组元素的键名,1和value则包含有数组元素的值.如果内部指针越过了数组的末端,则each()返回FALSE.each()函数的使用如下所示: 复制代码 代码如下: <?php $contact = array("ID" =&

  • C语言编程中函数的基本学习教程

    C 语言中的函数等价于 Fortran 语言中的子程序或函数,也等价于 Pascal 语言中的过程或函数.函数为计算的封装提供了一种简便的方法,此后使用函数时不需要考虑它是如何实现的.使用设计正确的函数,程序员无需考虑功能是如何实现的,而只需知道它具有哪些功能就够了.在 C 语言中可以简单.方便.高效地使用函数.我们经常会看到在定义后仅调用了一次的短函数,这样做可以使代码段更清晰易读. 到目前为止,我们所使用的函数(如 printf.getchar 和 putchar 等)都是函数库中提供的函数

  • JS中循环遍历数组的四种方式总结

    本文比较并总结遍历数组的四种方式: for 循环: for (let index=0; index < someArray.length; index++) { const elem = someArray[index]; // ··· } for-in 循环: for (const key in someArray) { console.log(key); } 数组方法 .forEach(): someArray.forEach((elem, index) => { console.log(

  • C语言之system函数案例详解

    来看看在windows操作系统下system () 函数详解(主要是在C语言中的应用) 注意:在windows下的system函数中命令可以不区别大小写! 函数名: system 功 能: 发出一个DOS命令 用 法: int system(char *command); system函数已经被收录在标准c库中,可以直接调用. 例如: #include<stdio.h> #include<stdlib.h> int main() { printf("About to sp

  • C语言运用回调函数实现计算器

    本文实例为大家分享了C语言运用回调函数实现计算器的具体代码,供大家参考,具体内容如下 回调函数概念: 回调函数是一个通过函数指针调用的函数,也就是将函数的地址作为参数传递给另一个函数,当这个指针回来调用其指向的函数时,称为回调函数. 本次制作计算器的功能: 1.add -- 加法 2.sub -- 减法 3.mul -- 乘法 4.div -- 除法 0.exit -- 退出 具体来通过代码讲解: (1)首先写一个菜单函数,在运行程序时打印菜单 void menu() { printf("***

随机推荐