目录
选择语句
循环语句
函数
1.函数的引用
2.函数的写法
数组
1.数组的定义
2.数组的下标
?3.数组的使用
操作符
1.算数操作符
(1)/ 和 %的基本使用
(2)怎么让 / 带小数,%不能带小数
2.移位操作符
3.位操作符
4.赋值操作符
5.单目操作符
(1)!操作符
?(2)+ -
?(3)&,*,~
?(4)sizeof
(5)++? ? ?--
(6)? (类型)
6.关系操作符
7.逻辑操作符
8.条件操作符
9.逗号表达式
10.下标引用,函数调用,结构成员
(1) [? ]?
? (2)? ?(? )
(3). ->
结束语
选择语句
人生处处面临选择,c语言中也一样拥有选择语句,可以通过一些选择来达成一些需求。选择语句在此处仅仅简单介绍一下if else选择语句的基本应用,后续文章将专门详细介绍。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int input = 0;
printf("请问你是否要坚持好好学习吗?(1/0)");
scanf("%d", &input);
if (input == 1)
{
printf("好offer\n");
}
else if (input == 0)
{
printf("回家卖红薯");
}
else
{
printf("选错了");
}
return 0;
}
if ? else 选择语句,多个选择的时候 else if继续进行选择,他俩后面可以直接跟赋值,最后一块打印,或者直接打印也可以。
这就是一个最简单的选择语句了,其中if后面的括号是判断是否成立的,如果成立则执行大括号里面的语句,如果不成立就依次往下判断,直到判断完毕。
循环语句
c语言中常用的循环语句一共有三种
while循环
do while循环
for循环
这三种循环我们暂时只浅浅的了解一下while循环,在后续的文章中,我将详细介绍这三种循环
int main()
{
int line = 0;
while (line <= 20000)
{
printf("敲代码: %d\n", line);
line++;
}
if (line > 20000)
printf("好offer\n");
else
printf("好好学习,天天编程\n");
return 0;
}
这是一个最简单的while循环语句,进入循环语句以后,先判断line是否小于20000,如果小于,这执行完大括号的语句后重新判断一次条件,就这样一直重复下去,直到打破循环。
特别的
这里也可以把输入的直接放在判断里,用scanf的返回值进行判断
? #include <stdio.h>
?int main() {
?? ? int iq = 0;
?? ? //输入
?? ? while (scanf("%d", &iq) == 1)
?? ? {
?? ? //输出,所以这里这里直接放scanf看返回是不是1,是1就是读到一个整数
?? ? while (scanf("%d", &iq) != EOF)
?? ? //这个写法是非EOF,就是能读取到整数
?? ??? ? if (iq >= 140)
?? ??? ??? ? printf("Genius\n");
?? ? }
?? ? return 0;
?}
?scanf ?函数返回的是:实际读到的数据的个数,读到一个整数返回1,然后再循环 ?scanf ?函数读取失败的时候,返回的是EOF ?EOF - end of file 文件结束标志
函数
1.函数的引用
为什么要有函数呢,函数就是帮助我们简便计算的,很庞大一个工程里面,可能需要很多次去进行相同的计算和步骤,那我们引用函数,在函数里面进行运算,我们在写代码的时候,需要用了,只需要一句代码来引用函数就可以,非常方便。
来看一个简单的例子
#include<stdio.h>
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
int c = a + b;
printf("%d", c);
return 0;
}
2.函数的写法
int Add(int x, int y) //int 是定义是整型 Add 是其名称,求和的意思
{
int z = 0;
z = x + y; //写你需要的操作,在下面直接引用z就好了
return z; //这是返回值,你把你的值导进来给 x , y 然后给你计算
} //算好之后你下面引用的时候,return 就是给你返回去
int Add(int x, int y)
{
return (x + y); //简化的写法,直接返回的 x,y 下面直接引用就行
}
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
//输入 //把 num1 给 x ,num2 给 y ,算好的 z 返回来
scanf("%d %d", &num1, &num2);
//求和
sum = Add(num1, num2);
//输出 //引用的时候,把你的 num1 ,num2 导进去函数,加上名称
printf("%d\n", sum);
return 0;
}
详细的讲解都在代码注释里,后续还会针对展开来说。
数组
1.数组的定义
数组的定义:一组相同类型元素的集合。可以是整数,字符,看你的定义的是什么数据类型。
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
//定义一个整形数组,最多放10个元素
int arr[10] = { 1,2,3,4,5 };
//不完全初始化,剩余默认为0
char arr[5] = { 'a','b','c' };
//不完全初始化,剩余默认为\0
2.数组的下标
切记从下标0开始
int a[10] | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 下标数 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
?3.数组的使用
简单的引用一下,这是打印数组里的元素,用下标数来引用,看对应的元素。
#include<stdio.h>
int main()
{
int arr1[10] = { 1,2,3,4,5,6,7,8,9,10 };
//定义一个数组[]里是内存,看看这个数组有多大,放多少个元素
int i = 0;
while (i < 10) //想打印数组全部元素是,用到循环,i是下标数
{ //从0开始循环,这个时候数组里面放的是变量
//以前说过只能放常量,但是这里是需要引用下标数的变量
printf("%d ", arr1[i]);
printf("%d\n", arr1[6]);
//这个 6 就是下标数,结果是对于的元素,就是 7
i = i + 1;
}
return 0;
}
操作符
1.算数操作符
? ? ? ? ? ?+??? -???? *? ? ? ? /? ? ? ? ?%
对应:加? 减? ?乘? ? ?除? ? 取余
(1)/ 和 %的基本使用
/ 代表的是两个数相除后的商,也就是整数部分
%代表的是两个数相除后的模,也就是余数部分
#include<stdio.h>
int main()
{
int a = 5 / 4;
int b = 5 % 4;
printf("%d %d", a, b);
return 0; //所以结果都是 1
}
(2)怎么让 / 带小数,%不能带小数
我们来用浮点型来打印试试,结果发现不行,打印出来还是不对。
#include<stdio.h>
int main()
{
float a = 5 / 4;
int b = 5 % 4;
printf("%f %d", a, b);
return 0;
}
这里总结一下/的处理小数中的问题
1.除号两端如果都是整数,则执行的是整数除法
2.除号两段至少有一个是浮点数,才能执行浮点数的除法
对于%
%是取模(取余),%操作的两个操作数必须都是整数
2.移位操作符
>>? ??? <<
?与二进制有关,暂时不讲。
3.位操作符
&?? ^ ?? |
?与二进制有关,暂时不讲。
4.赋值操作符
=??? +=?? -=?? *= ? /=? ? %=?? &=?? ^=?? |=?? >>=?? <<=
#include<stdio.h>
int main()
{
int a = 0;//初始化,创建变量的同时给一个值,这叫初始化
a = 20;//赋值
a = a + 5;
a += 5;//与前一行等价
a = a * 10;
a *= 10;//与前一行等价
return 0;
}
其他的相同含义,后面几个以后讲到。
5.单目操作符
! ? ? ? ? ? ? ?逻辑反操作 - ? ? ? ? ? ? ?负值 + ? ? ? ? ? ? 正值 & ? ? ? ? ? ? 取地址 sizeof ? ? 操作数的类型长度(以字节为单位) ~ ? ? ? ? ? ? 对一个数的二进制按位取反 -- ? ? ? ? ? ? 前置、后置-- ++ ? ? ? ? ? 前置、后置++ * ? ? ? ? ? ? ?间接访问操作符(解引用操作符) (类型) ? ? 强制类型转换
(1)!操作符
C语言中,0 是假,非 0 就是真。!就是非的含义,加上后就是反义。
int main() // !的作用
{
int flag = 5;
//如果flag为真,就打印hehe
if (flag)
{
printf("hehe\n");
}
//如果flag为假,就打印haha flag假,!flag就是真
if (!flag)
{
printf("haha\n");
}
return 0;
}
?(2)+ -
关于这两个操作符,-有一个作用就是取相反数,+基本上就是一种可有可无的状态。
?(3)&,*,~
与二进制有关,暂时不讲。
?(4)sizeof
sizeof是操作符,用于计算变量所占内存空间的大小,单位是字节
strlen是库函数,是计算字符串的长度的,统计的是字符串中\0之前出现的字符个数
#include<stdio.h>
int main()
{
int a = 10;
float f = 5.5f;
printf("%d\n", sizeof(a));
printf("%d\n", sizeof(int));
printf("%d\n", sizeof(f));
printf("%d\n", sizeof(float));
return 0;
}
打印出来都是占4个字节。
(5)++? ? ?--
对于代码中主要区分前置++,与后置++的区别
即前置是先++,后引用,等价于a=a+1,b=a
后置++是先引用后++,等价于b=a,a=a+1
int main()
{
int a = 100;
//int b = (a++);//后置++,先使用,后++ a = 101 b = 100
//int b=a,a=a+1;
//int b = ++a;//前置++,先++,后使用 a = 101 b = 101
//a=a+1,b=a;
//int b = a--; a = 99 b = 100
//int b = a,a=a-1;
int b = --a; a = 99 b = 99
//a=a-1,b=a;
printf("a=%d b=%d\n", a, b);
return 0;
(6)? (类型)
这个操作意思是强制类型转换,如下面代码一样,将3.14强制类型转化为int类型,就变成了3
int main()
{
//(类型) - 强制类型转换
int a = (int)3.14;//这里只取整数部分 (int)使其强制只要整数的部分
printf("%d\n", a);
return 0;
}
6.关系操作符
>??? >=???? < ?? <= ? ? != ? ? ==
这几个都是用于判断的,如果判断为真,则返回1,否则返回0
7.逻辑操作符
&&? ||
这两个操作符的区别就是
a&&b,两边同时为真,结果为真
a||b,两边同时为假,结果为假,跟数学里的交并一样。
int main()
{
int a = 3;
int b = 5;
if (a && b) 这个时候 a b 都是真,与的时候也是真,所以打印hehe
if (a || b) 这个时候 a b 都是真,或的时候也是真,所以打印hehe
或者ab其中有假的时候,会出现打印不了,就看是或还是与
就跟数学里的交并一样道理
&& || 只关注真假
&& 两边同时为真,才为真
|| 两边同时为假,才为假
{
printf("hehe\n");
}
return 0;
}
还有一种用法就是判断取范围时,可能是两端范围,不能直接写,需要用 && || 来写
int main()
{
//年龄18~36 青年
int age = 2;
if (18 <= age <= 36) //这样写是错的
printf("青年\n");
if (age >= 18 && age <= 36) //需要这样来写
//好习惯把变量放前面
printf("青年\n");
8.条件操作符
exp1 ? exp2 :exp3
这里用例子来反映,求出ab里最大值。
int main()
{
int a = 0;
int b = 0;
int m = 0;
scanf("%d %d", &a, &b);
if (a > b)
m = a;
else
m = b;
//麻烦的时候用条件操作符, expl1 ? expl2 : expl3
m = (a > b ? a : b);
表达式1: a > b 第一个表达式真的话就到第二个表达式 a 去等于 m 即 m = a
表达式2: a 第一个表达式假的话就到第三个表达式 b 去等于 m 即 m = b
表达式3: b 就是第一个真的话到第二个表达式,第一个假的话到第三个表达式
应用于简单的逻辑
printf("%d\n", m);
return 0;
}
9.逗号表达式
exp1,exp2,……,expn;
后续讲到?
10.下标引用,函数调用,结构成员
[]? ()? .? ->
(1) [? ]?
这是数组下标引用操作符,先看一段代码
int main()
{
int arr[10] = {1,2,3,4,5,6,7,8,9,0};
printf("%d\n", arr[4]);//[]下标引用操作符
return 0;
}
? (2)? ?(? )
这是函数调用操作符,我们先看一段代码
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
//输入
scanf("%d %d", &num1, &num2);
//求和
sum = Add(num1, num2);//()函数调用操作符
//输出
printf("%d\n", sum);
return 0;
}
(3). ->
结构体成员操作符,暂时不讲
结束语
本节主要讲述了,注释,选择,循环,函数,数组,以及操作符的简单基本使用,暂时只需了解最基本的概念即可。希望能对读者有很大的帮助。不要忘记留下你免费的赞赞和关注哦。
|