国外优秀网站建设,没有网站可以做落地页,开发游戏需要学什么,标题制作网站感兴趣的朋友们可以留个关注#xff0c;我们共同交流#xff0c;相互促进学习。 文章目录 前言 八、函数 九、数组 #xff08;1#xff09;数组的定义 #xff08;2#xff09;数组的下标和使用 十、操作符 #xff08;1#xff09;算数操作符 #xff08;2#xff…感兴趣的朋友们可以留个关注我们共同交流相互促进学习。 文章目录 前言 八、函数 九、数组 1数组的定义 2数组的下标和使用 十、操作符 1算数操作符 2移位操作符 3位操作符 4赋值操作符 5单目操作符 6关系操作符 7逻辑操作符 8条件操作符 9逗号表达式 10下标引用、函数调用和结构成员 十一、常见关键字 总结 前言
我们在上个文章学习了常量变量的作用域生命周期以及等等我们了解了字符串转义字符注释等相关了解我们还了解了选择语句和循环语句中的while语句剩下的for和do while 循环之后会进行详细分析。
。 八、函数
就像数学中的函数yf(x)
C语言中的函数也跟数学中的函数也差不多。
例如以下代码,一下代码是求两个和
#include stdio.h
int main( )
{int num1 0;int num2 0;int sum 0;scanf(%d %d,num1,num2);//输入sum num1num2;//求和printg(%d\n,sum);return 0;
}
我们用函数来写求两个数的和 #include stdio.h
int main( )
{int num1 0;int num2 0;int sum 0;scanf(%d %d,num1,num2);//输入sum Add(num1,num2);//求和printg(%d\n,sum);return 0;
}
这里的Add就是一个函数来进行相加我们可以把它想象成为一个工厂对输入的材料进行加工最后产出产品。这里的Add要进行加法操作所以传进来的要是两个数加数和被加数也就是num1和num2之后返回一个结果
Add(int x,int y)
{int z 0;z xy;return z;
}我们来进行Add函数的实现,首先是Add函数的名字函数里面要传入两个数我们在这里认为传入的数是两个整数所以定义这两个数分别是x和y函数的外壳写好了接下来该分析函数内部如何实现要计算两个数相加我们定义一个整形z来表示结果z等于这两个数进行相加最后返回z因为z是整形所以函数返回的类型是整形。这时这个函数就写好了在main函数中调用和传入参数就可以了。这里num1和num2叫做传入参数。
函数比较方便随时调用避免了重复。
九、数组
1数组的定义
当我们存储1-10的数字我们是否要定义十个变量来进行存储那样就会很麻烦也许会觉得也就写十行代码的事但要是要存储100个数字呢是否还是一句一句打出来那样是真的很麻烦。所以才会出现数组这个概念。 数组中可以存放一组相同类型的元素也就是一组相同类型元素的集合。 int arr[10] {1,2,3,4,5,6,7,8,9,10};
上列代码就是数组的创建和初始化我们命名数组的名字为arr想让它里面有十个元素所以定义里面10又想让它的元素都是整形所以在前面定义Int添加等号来写数组里面的十个数从1-10。这样就创建了一个包括10个整形元素的数组。
2数组的下标和使用
数组里的元素是放在内存里面的数组里每个元素都有下标的而下标是从0开始的如下 是可以通过下标的方法来找到数组中的元素的如下如果我们想要通过下标来找到数字7那么就要访问下标为6的元素。
int arr[10] {1,2,3,4,5,6,7,8,9,10};
printf(%d\n,arr[6]);
如果我们想把所有元素打印出来可以通过while和下标来打印出来while使i从0循环到9也就是arr元素的下标也就打印出来了这十个数
int arr[10] {1,2,3,4,5,6,7,8,9,10};
printf(%d\n,arr[6]);
int i 0;
while(i10)
{printf(%d,arr[i]);
} 十、操作符
C语言中提供了非常丰富的操作符使得C语言非常的灵活什么事都可以干。
1算数操作符 算数操作符 - * / % 算数操作符就是加减乘除和取余%当我们用15除/上一个2的时候结果就是7 除法默认是整形取余模就是得到余数。
如果我们除法想要得到小数的时候我们前面给这个变量定义成float浮点数类型之后用%f来输出结果也就是打印浮点数类型如果你那么想那就错了哈哈。
如果除号的两端都是整数那么执行的是整数的除法除号两边至少有一个是浮点数才能执行浮点数的除法。
但是当取模的时候两边都是整数才行。
2移位操作符 移位操作符 左移和右移这些都跟二进制有关后续会进行深入了解
3位操作符 位操作符 ^ | 按位与 按位或 按位异或也与二进制有关到后面深入了解
4赋值操作符 赋值操作符 - * / ^ | int main( )
{int a 0;//初始化a 20; //赋值a a5; //a5;return 0;
} 当我们初始化一个变量a并且赋值给20想要加5还赋给a也可以写成aa5, 这与aa5一样没有差别。其它的也都一样进行操作后又赋值给自己。
5单目操作符 单目操作符 逻辑反操作 - 负值 正值 取地址 sizeof 操作数的类型长度以字节为单位 ~ 对一个数的二进制按位取反 -- 前置后置-- 前置后置 * 间接访问操作符解引用操作符 类型 强制类型转换 // ! 的使用
int main( )
{int a 5;if(a){printf(OK\n);}if(!a){printf(NO\n);}return 0;
} 在C语言中非零为真0为假所以在这里a不为假在这里会进行下一步操作也就是打印OK如果我们想要进行打印NO那么就要a为假这里就用到了表示相反的逻辑如果这时候a为0所以这时候就打印NO。 // -
int a 10;
int b -a;
这里b的数就是-10,这就是负号的使用而当用到正号的时候。
//
int a -10;
int b a;
当时我也以为b是10但是结果出来后确是-10没有发生变化所以正号也可以省略不用写。
后续会进行分析。
重点sizeof是操作符
int a 10;
float f 5.5f;
printf(%d\n,sizeof(a));
printf(%d\n,sizeof(f));
sizeof 是操作符 是计算变量所占内存空间的大小单位是字节这里a和f的字节数都是4我们也可以将a和f换成int和float所以里面放变量名也好或者是变量的类型来说结果都是一样的两种写法都可以。
而我们之前提到的strlen是库函数是计算字符串长度的统计的是字符串\0之前出现的个数。而sizeof不管里面是什么它只统计占用的字节内存是多少。
//
int a 100;
int b a;当在后面的时候这是后置先使用后也就是先使用100之后在自增1变成了101。
当在前面的时候就是前置与之前的相反也就是先加1再使用这时候a和b都是101。
--操作符也是这个原理相同的逻辑但是不同的运算。
//类型强制类型转换
int main( )
{int a (int)3.14;printf(%d\n,a);return 0;
}
当我们写一个整形变量a的时候 想把3.14赋值给a如果不加Int编辑器就会报错说你可能会丢失数据当加上int的时候就将3.14强制类型转换转换为整形只保留正数部分。
6关系操作符 ! 用于测试“不相等” 用于测试“相等” 关系操作符就这么几个用来表示关系判断大小关系其中是判断相等的而一个等号就是赋值当写选择语句的时候要考虑清楚两个等号是用来判断一个是用来赋值。 7逻辑操作符 逻辑与 || 逻辑或 逻辑与的意思就是并且两个都需要而逻辑或是或者的意思来一个就行或者两个都来
int a 3;
int b 5;
if(a b)
{printf(OK\n);
}一般是用来判断真假也可以用来选择范围这里a为3b为5两个同时是真所以会打印OK如果有一个是0则不会打印因为非0为真。
两边同时为真才为真有一个为假了就为假。
|| 两边同时为假才为假有一个为真就为真。
8条件操作符 exp1 ? exp2 : exp3 int a 0;
int b 0;
int m 0;
scanf(%d %d, a,b);
if(ab)ma;
elsemb;
printf(%d\n,m);这是一个比较两个数输出较大值的一个简单写法如果觉得这样写繁琐就可以用条件逻辑符来进行写
m(a b ? a : b); 如果表达式1里面的ab这个条件为真表达式2就执行也就是返回a的值如果表达式为假就返回b的值这个只能用于简单的语句。
9逗号表达式 exp1 , exp2 , exp3 , ...expN 10下标引用、函数调用和结构成员 [ ] ( ) . - [ ]下标引用操作符
下标引用就是刚才用数组通过下标来访问元素的符号。
函数调用操作符
上文中写了一个两个数相加的函数Add来调用的时候后面的就是函数调用操作符。 . 和 -是结构成员访问操作符
操作符非常的丰富 后续都进行深入了解。这里先简单的了解一下不同场景用不同操作符。
十一、常见关键字
关键字必须要知道有什么因为当我们在定义变量的时候如果不知道关键字就有可能会用关键字名字来命名变量名字这些关键字是C语言事先预定好的变量的命名之前说事不能有关键字的。 auto break case const continue default do else enum extern for goto if register return sizeof static struct switch typedef union volatile while char double float int long short signed unsigned void auto关键字一般被省略了因为局部变量一般都是在作用域里面自动创建自动销毁的所以它其实前面有一个auto 由于所有局部变量前面都有auto所以就省略掉了。
break可以打破循环在循环中可以使用。
case是在分支语句switch中使用。
类型有关auto cha r int short long float double signed有符号的 unsigned无符号 static void enum const union typedef
循环有关break continue do while
分支有关if else switch case break default goto
声明外部符号extern
寄存器reister
函数return
计算所占内存大小sizeof
先进行了解用多了就记住了。 总结
码要用手敲才会熟练
先了解后续会一个个进行详解对于我来说也是受益匪浅。