初识C语言(3)

1、循环语句,主要是有while循环、for循环、do-while循环

2、函数

C语言的函数有库函数和自定义函数两大类,像我们经常使用的打印函数、输入函数、main函数等,这些都是C语言为我们提供的库函数。有的时候为了满足需求,一般会自己定义函数,这些函数被称为自定义函数,自定义函数一般要有函数名、参数、函数体、函数返回值类型,函数一般是写在主函数外部的,可以多次调用,同时也使主函数比较简洁。

给大家看一下这个自定义求和函数的效果:

#include<stdio.h>
int ADD(int x, int y)
{
	int sum;
	sum = x + y;
	printf("sun=%d\n", sum);
	return sum;
}//大括号内部的是函数体
int main()
{
	int num1, num2;
	printf("请输入两个整数:\n");
	scanf("%d %d", &num1, &num2);
	ADD(num1, num2);
	return 0;
}

ADD是这个函数的函数名,ADD前面的int是指函数的返回值类型,ADD后面括号内部的是定义的函数的参数,且定义了参数类型,大括号内部的是函数体。

运行效果:

3、数组

数组:一组相同类型元素的集合

以“int arr[10]”为例,来介绍一下,int是指该数组的元素类型是int,arr是数组名,10是指数组大小,当然,在定义一个数组的时候,不一定要给出确切的数组元素个数,可以在后面列举数组元素,系统会计算数组元素个数。

数组的下标从0开始,依次递增,最大是n-1,当调用下标为n的元素的时候,实际上是引用的第n+1个元素,如果想要打印所有的数组元素,用循环语句来实现。

#include<stdio.h>
int main()
{
	int i,k;
	int arr[5] = {23,34,45,56,67};
	for (i = 0; i <= 4; i++)
	{
		k = i + 1;
		printf("第%d个数组元素是:%d\n", k,arr[i]);
	}
	return 0;
}

运行结果:

 4、操作符

(1)算术操作符

“+”、“-”、“*”、“/”、“%”

#include<stdio.h>
int main()
{
	int num1= 9;
	int num2=2;
	printf("num1对num2进行取模运算的结果是:%d\n", num1 % num2);
	printf("num1对num2进行除法运算的结果是:%d\n", num1/num2);
	return 0;
}

 运行结果:

 (2)移位操作符

"<<":左移操作符;">>":右移操作符。移位操作符移的是二进制位。

#include<stdio.h>
int main()
{
	int num1 = 8;
	int num2 = 7;
	printf("num1的左移一位得到:%d\n", num1 << 1);
	printf("num1的左移两位得到:%d\n", num1 << 2);
	printf("num2的右移一位得到:%d\n", num2 >> 1);
	printf("num2的右移两位得到:%d\n", num2 >> 2);
	return 0;
}

   运行结果:

 在使用移位操作符的时候,基本表达式如下:num+移位操作符+移位位数。

关于移位操作符具体运算的过程,先按下不表。

3)位操作符:“&”、“|”、“^”

“&”:按位与。仍是二进制位,只要有一个0,进行与运算的结果就为假,就是0。

#include <stdio.h>
int main()
{
	int num1 = 2;//00000000000000000000000000000010
	int num2 = 3;//00000000000000000000000000000011
	int num3 = 0;//00000000000000000000000000000010
	num3 = num1 & num2;
	printf("%d\n", num3);
	return 0;
}

运行结果:

“|”:按位或。有一个是真,就是真。

“^”:按位异或。对应的二进制位相同为0,相异为1。

按位或和按位异或运算就不展示代码了。

(4)赋值操作符

“=”、“+=”、“-=”、“&=”、“*=”、“/=”、“^=”、“|=”、“<<=”、“>>=”。

(5)单目操作符

“!”:逻辑反操作、“-”:取负、“&”:取地址、“sizeof”:计算变量或者类型所占空间大小

#include <stdio.h>
int main()
{
	printf("int类型所占字节数:%d\n", sizeof(int));
	//计算类型所占字节数
	float num1 = 3.14f;
	printf("num1变量所占字节数:%d\n", sizeof(num1));
	//计算变量所占空间大小
	int arr[10] = {0};
	int l = 0;
	l = sizeof(arr)/ sizeof(arr[0]);
	printf("数组大小为:%d\n", l);
	return 0;
}

“~”:对一个数进行按位取反。

#include<stdio.h>
int main()
{
	int num1 = 1;
	int num2 = ~num1;
	printf("%d\n", num2);
	//num1=1=00000000000000000000000000000001
	//num2=-2=11111111111111111111111111111110(补码)
	//       =11111111111111111111111111111101(反码)
	//       =10000000000000000000000000000010(原码)
	//       =-2(十进制)
	return 0;
}

运行结果:

在进行按位取反操作的时候,一定要注意是针对二进制位进行的操作,在这里简单解释一下为什么最后对num2是等于-2,num2的补码、反码、原码我已经注释在代码里了,计算机在存储的时候,不管是正数还是负数,存储的都是数字的补码,对于占四个字节的有符号整数而言,第32位数字是表示正负的,0代表正数,1代表负数。对于正数而言,它的原码、反码、补码都是相同的,但是负数并不是这样子的,对于负数而言,原码符号位不变,其他位按位取反,得到该负数的反码,反码再加一得到其补码,然后负数以补码的形式存储在计算机中。这个地方得到的num2的补码后,还需要进行转换,得到其对应的十进制数字。

“++”:前置、后置++

前置++是先使用值,再进行自加;后置++是先进行自加,再使用值。

#include<stdio.h>
int main()
{
	int a = 8;
	printf("b=%d\n", a++);//后置加加,先使用再自加
	printf("a=%d\n", a);
	printf("c=%d\n", ++a);//前置加加,先自加再使用
	return 0;
}

运行结果:

 “--”:前置、后置--,用法和“++”类似,就不再赘述了。

“*”:间接访问操作符,这里先按下不表;“(类型)”:进行强制类型转换。

(6)关系操作符

“<”、“>”、“>=”、“<=”、“!=”(用于测试不相等)、“==”(用于测试相等)。

(7)逻辑操作符

“&&”(逻辑与)、“||”(逻辑或)。这两个逻辑操作符进行的是逻辑操作,得到的是逻辑值。

(8)条件操作符(三目操作符)

exp 1?exp 2:exp 3。

#include<stdio.h>
int main()
{
	int num1 = 89;
	int num2 = 6;
	int k=(num1 > num2) ? num1 : num2;
	printf("k=%d\n", k);
	return 0;
}

 运行结果:

 (9)逗号表达式

exp1,exp2,exp3,exp4......expN

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

“[]”、“()”、“.”、“->”。

以上内容整理自:

c语言编程 C语言入门 c语言(C语言程序设计教程 c语言视频教程 c语言零基础入门教程 学习c语言 c语言视频教程 c语音 C语言教程 C语言编程项目 C语言_哔哩哔哩_bilibili学习C语言学习C语言程序设计教程 c语言视频教程 谭浩强 c语言学习 谭浩强 谭浩强c语言零基础入门教程 c语言 c语言视频教程 c语音 C语言教程 C语言编程项目 C语言学习C语言程序设计教程 c语言视频教程 c语言零基础入门教程 c语言 c语言视频教程 c语音 C语言教程 C语言编程项目 C语言学习 C语言 c语言 C语言程序设计https://www.bilibili.com/video/BV1q54y1q79w?share_source=copy_web

坚持学习,坚持输出,如果读者有发现问题,欢迎批评指正哦!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值