C语言从入门到入土(三)
前言
生活还要继续,学习不能停止,本期就给大家大致了解一下函数,数组的基本使用,以及一些常见操作符的认识,方便大家能更好的看懂大佬写的代码。
目录
前言
一、函数
1.1 库函数
1.2 自定义函数
二、数组
2.1 数组的定义
2.2 数组的下标
2.3 数组的使用
三、操作符
一、函数
在C语言中大致可以分为库函数和自定义函数。
1.1 库函数
库函数是C语言编程时规定好的函数
#include <stdio.h>
#include <string.h>
int main()
{char ch[] = "abcdef";int i = 0;i = strlen(ch);// strlen 函数用于求字符串长度printf("%d", i);return 0;
}
在上面这个例子中,我使用了一个 strlen 的函数,而调用这个函数的时候就需要引用一个<string.h>的头文件。
1.2 自定义函数
在编程的时候往往会碰到库函数无法完美实现自己想达到的功能的情况,而此时我吗们就需要,自己创建一个函数,我们称之为自定义函数。
假设要想自己实现一个加法的函数
#include <stdio.h>
int add(int a, int b)
{return a + b;
}int main()
{int a = 2;int b = 3;int c = 0;c = add(a, b);printf("%d", c);return 0;
}
自定义函数的优点:当想要多次使用一个功能的时候,可以避免代码过于沉长
二、数组
#include <stdio.h>
int main()
{int a = 1;int b = 2;int c = 3;return 0;
}
当我们想定义很多同一种类型数据的时候,一个个定义会显的十分的长,此时,我们就引入了一个数组来存储同一个类型的数据。
#include <stdio.h>
int main()
{//int a = 1;//int b = 2;//int c = 3;//上面的太长了int arr[] = { 1,2,3,4 };return 0;
}
2.1 数组的定义
数组可以有三种初始化的方式
#include <stdio.h>
int main()
{int arr1[3] = { 1,2,3 };int arr2[] = { 1,2,3 };int ar3[3];return 0;
}
arr1 规定了3个元素个数,里面初始化3个元素
arr2 只进行了初始化,没有规定元素个数
arr3 只规定了3个元素,并没有进行初始化
2.2 数组的下标
C语言规定:数组每个元素下面都要有一个下标,下标从0开始。
数组可以通过下标来访问。
int arr[8] = { 1,2,3,4,5,6,7,8 };
注意:
[8] 方括号里面的数字代表数组元素的个数
而下标是从0开始的,在这个例子里,下标最大值为7 ( 范围:0 ~ 7 )
2.3 数组的使用
如果我们想对一个数组进行操作,使用一个循环会方便很多
#include <stdio.h>
int main()
{int i = 0;int arr[8] = { 0 };for (i = 0; i < 8; i++)//给数组输入值{scanf("%d", &arr[i]);}for (i = 0; i < 8; i++)//输出数组的值{printf("%d ", arr[i]);}return 0;
}
当我使用scanf的时候,会只读取数字,中间用空格分开,空格是字符,类型与原来不符,所以不读取
三、操作符
在前期的学习中, 我们主要以认识为主,以后会详细介绍
算数操作符
+ - * / %
加 减 乘 除 模(取模运算就是算一个数的余数)
#include <stdio.h>
int main()
{int a = 0, b = 3, c = 2;a = b % 2;printf("%d", a);return 0;
}
移位操作符
>> <<
位操作符
& ^ |
赋值操作符
= += -= *= /= &= |= >>= <<=
= : a = b , 将 a 的值给 b
+= : a += b ,相当于 a = a + b
-= : a -= b ,相当于 a = a - b
*= : a *= b ,相当于 a = a * b
/= : a /= b ,相当于 a = a / b
单目操作符
! 逻辑取反
- 负号
+ 正号
& 取地址
sizeof 操作数的字节长度( 单位: 字节)
~ 对一个二进制数按位取反
-- 前置、后置 --
++ 前置、后置 ++
* 间接访问操作符(解引用操作符)
(类型) 强制类型转换
逻辑反操作符:
#include <stdio.h>
int main()
{int d = 2;if (!(d == 2))// ! 对判断结果取反printf("haha");elseprintf("hehe");return 0;
}
sizeof :
注意,sizeof是一个单目操作符号,用于计算字节大小
#include <stdio.h>
int main()
{int arr[10] = { 0 };printf("%d\n", sizeof(arr));printf("%d\n", sizeof(int));printf("%d\n", sizeof(char));return 0;
}
--和++:
自减和自加,使用的时候主要看在前面还是后面
例如:
++a : 表示先自加,后进行下一步运算
a++ : 表示先运算,后进行自加
#include <stdio.h>int main()
{int a = 0, b = 0, c = 1, d = 0;b = a++;d = --c;printf("b = %d, d = %d", b, d);return 0;
}
关系操作符:
> 大于>= 大于等于< 小于<= 小于等于!= 用于判断“不相等”== 用于判断“相等”
逻辑操作符:
&& 逻辑 与|| 逻辑 或
条件操作符:
exp1 ? exp2 : exp3
这个表示: exp1 为真吗?为真返回 exp2 ,为假返回 exp3
#include <stdio.h>
int main()
{int a = 3, b = 4, c = 0;c = (a > b) ? a : b;printf("%d",c);return 0;
}
逗号表达式:
exp1 , exp2 , exp3 , ...... , expN
使用逗号表达式,程序会一直运行下去
#include <stdio.h>
int main()
{int a = 1, b = 3, c = 0;c = a++, ++b, ++a;printf("c = %d, a = %d, b = %d\n", c, a, b);return 0;
}
下标引用、函数调用、结构体成员
[ ] 使用数组时候的下标引用操作符 例如:arr[ ]
( ) 调用函数使用的括号 例如: Add( )
. 指针访问的时候用到的操作符
-> 指针访问的时候用到的操作符
作者的小声BB:
在早期的学习中,先从读懂大佬写的代码才能一步步提高自我,总是要经过一段天天写BUG的时期的,( 我就是这么过来的 )一个错误在刚开始的时候错的多是很正常的,但在经过自己慢慢的专研后,能对这个知识点又更加深刻的理解。
C语言从入门到入土(三)相关推荐
- 决战Go语言从入门到入土v0.1
下载地址:https://gitcode.net/as604049322/blog_pdf 安装与运行环境 Go 语言环境安装 Go语言支持Linux.Mac和Windows,本人接下来的学习全部基于 ...
- 为什么c语言会入门到入土,大整数从入门到入土
大整数(高精) 声明,这是一篇从入门到入土的大整数讲解,可能有那么一点小长,内容涵盖大整数加法,减法和乘法,但由于水平有限,还是有不足之处希望评论提出.如果你是一个萌新,相信我,我会写得非常详细,你一 ...
- 简单说明c语言程序步骤,C语言的入门简介和三个简单的C语言程序详细说明
学习一种编程语言,最重要的是建立一个练习环境,边学边练才能学好.Keil软件是目前最流行开发80C51系列单片机的软件,Keil提供了包括C编译器.宏汇编.连接器.库管理和一个功能强大的仿真调试器等在 ...
- 三羊献瑞c语言编程入门,蓝桥杯-三羊献瑞,
蓝桥杯-三羊献瑞, 更多精彩文章请关注公众号『大海的BLOG』 问题 观察下面的加法算式: 祥 瑞 生 辉 + 三 羊 献 瑞 ---------------- 三 羊 生 瑞 气 其中,相同的汉字代 ...
- (初识C语言p2) C语言从入门到入土(入门篇)
初识C语言 什么是C语言 第一个C语言程序 数据类型 变量.常量 字符串+转义字符+注释 //以上是上一节讲过的想要观看的小伙伴们可以去看之前的博客哟 目录 初识C语言 6. 选择语句 7. 循环语句 ...
- R语言从入门到入土--一文带你解锁ggplot2绘图大法
一.准备工作 (1)下载包:install.packages(tidyverse)--注意选择国内源 (2)载入包:library(tidyverse) (3)了解一下本次实验所使用的几个数据包 可以 ...
- C语言编程入门之--第三章编写第一个C语言程序
导读:一般学一门计算机语言的第一堂上机课("上机"顾名思义,上计算机,机你太美),就是往屏幕输出"hello world",本章也不例外. 3.1 Hell ...
- 【C语言从入门到入土】——“井字棋”
目录 1.游戏规则 2.设计思路 1.棋盘的初始化 2.打印棋盘 3.玩家操作 4.电脑下棋 6.输赢判断 7.完整代码展示 1.游戏规则 井字棋又叫三子棋,作为童年经典小游戏,相信各位无论是在上课摸 ...
- 【C语言进阶】从入门到入土(数据的存储)
前言: 这一篇我们来深度剖析数据在内存中的存储,让我们走进数据在内存中到底是任何进行存储的,不同的数据类型有何差异. 进阶之数据的存储: 一.数据类型详细介绍及归类 1.数据类型介绍 2.类型的基本归 ...
最新文章
- rⅰd的意思_Q345R(HIC)和Q345R(R-HIC)化学成分抗氢板
- PCIE的事务类型:posted和non posted transaction
- Reroute Unassigned Shards——遇到主shard 出现的解决方法就是重新路由
- 自己挖的坑自己填--docker创建实例出现Waiting for SSH to be available…
- stm8s开发(七) SPI的使用:SPI主机通信!
- Spring4中的@Value的使用(学习笔记)
- CRC冗余校验举例和原理
- 网站开发技巧参考大全 event js
- git tag和分支的区别_GIT常用命令大全
- 一文看懂NXP汽车电机控制解决方案(NXP整理)
- JavaEE之HTML常见标签及个人简历制作
- word文档计算机基础考试,计算机基础考试题库(含答案)48924
- youtube-dl 环境搭建 使用
- linux下rtc时间不准,Linux中系统时间和RTC时间的关系
- android OS 耗电量大,安卓os耗电高怎么解决
- H5移动端如何推送消息
- 水仙花数的while方法
- 2019年全国电子设计大赛综合测评感悟
- java英雄联盟战斗力题目,Java 查询英雄联盟玩家战绩
- 美容院管理系统统一管理制度?
热门文章
- CAD中角度如何平分、CAD特性匹配的作用是什么?
- Vue项目引入animated
- Android开发之路:搞懂这几个问题,就掌握了屏幕适配原理
- vivo怎么切换为Android,vivox60pro如何切换系统 一键切换手机不通系统方法
- 车架号 生成 java_车辆识别码VIN校验位计算方法及实现 VIN号检验、车架号检验 java、 C++...
- 如何定义和使用一个 Lambda 表达式
- 使用IntelliJ IDEA打开一个项目步骤
- 会议OA(会议排座送审)
- MIT Mini Cheetah–开源代码仿真环境搭建记录(Ubuntu20.04)
- 兼容ios和android的ar,安卓又落后 这几款AR游戏只能iOS玩