【C语言学习】函数、数组及操作符(初识)

1. 函数


函数可以用以上图画进行表示,简单来说,其可以看作是一个有着特定功能的加工厂!

1.1 函数的写法

#include <stdio.h>
int main()
{
    int num1 = 0;
   int num2 = 0;
    int sum = 0;
    printf("输入两个操作数:>");
    scanf("%d %d", &num1, &num2);
    sum = num1 + num2;
    printf("sum = %d\n", sum);
    return 0;
}

以上两数相加程序的一般写法,将其改为函数如下所示。

#include <stdio.h>
int Add(int x, int y)//用两个形参x,y(整形)来接收,没有传地址过来,只是实参的一份临时拷贝。形参和实参可以用相同字符表示,但一般建议不要相同。
{
   int z = x+y;
   return z;
}

int main()
{
    int num1 = 0;
   	int num2 = 0;
    int sum = 0;
    printf("输入两个操作数:>");
    scanf("%d %d", &num1, &num2);
    sum = Add(num1, num2);//调用add函数来计算num1+num2,并进行传参(实参)。
    printf("sum = %d\n", sum);
    return 0;
}

函数的特点就是简化代码,代码复用

2. 数组

C语言中,数组是一组相同类型元素的集合。如果要写多个相同int 类型的数,一直重复int太麻烦,这时就可以用数组来写。

2.1 数组的定义

int arr[10]={1,2,3,4,5,6,7,8,9,10};//定义一个整形数组,最多放10个元素。

2.2 数组的下标

C语言规定:数组的每个元素都有一个下标,下标是从0开始的,并且数组可以通过下标来访问。

int arr[10]={1,2,3,4,5,6,7,8,9,10};//数组中一共10个元素,下标的范围则是0~9。

2.3 数组的使用

3. 操作符

3.1 算术操作符:+ - * / %

+、-:正常的加减法,不多讲。
/:除法得到的是商。
%:取模,得到的是余数,只能用于整形。

3.2 赋值操作符:= += -= *= /= &= ^= |= >>= <<=

// = 操作符:把右边操作数赋值为左边操作数
int a = 0;//将0赋值给a或将a初始化为0。
 
// += 操作符:把左边操作数加上右边操作数的结果赋值给左边操作数。
int a = 0;
a = a + 2;
a += 2;//与a = a + 2等同。
 
// -= 操作符:把左边操作数减去右边操作数的结果赋值给左边操作数。
int a = 3;
a = a - 2;
a -= 2;//与a = a - 2等同。

// *= 操作符:把左边操作数乘以右边操作数的结果赋值给左边操作数。
int a = 2;
a = a * 2;
a *= 2;//与a = a * 2等同。

// /= 操作符:把左边操作数除以右边操作数的结果赋值给左边操作数。
int a = 2;
a = a / 2;
a /= 2;//与a = a / 2等同。

// &= 操作符:按位与且赋值运算符。
int a = 2;
a = a&2;
a &= 2;//与a = a&2等同。

// ^= 操作符:按位异或且赋值运算符。
int a = 2;
a = a^2;
a ^= 2;//与a = a^2等同。

// |= 操作符:按位或且赋值运算符。
int a = 2;
a = a|2;
a |= 2;//与a = a|2等同。

// >>= 操作符:右移且赋值运算符。
int a = 2;
a = a>>2;
a >>= 2;//与a = a>>2等同。

// <<= 操作符:左移且赋值运算符。
int a = 2;
a = a<<=2;
a <<= 2;//与a = a<<2等同。

3.3 单目操作符:! - + & sizeof ~ – ++ *

3.3.1 ++,–操作符

#include <stdio.h>
 
int main()
{
	//int a = 10;
	//int b = a--;//后置--,先使用,再-1
	//printf("a = %d, b = %d", a, b);
 
	//int a = 10;
	//int b = --a;//前置--,先-1,再使用
	//printf("a = %d, b = %d", a, b);
 
	//int a = 10;
	//int b = a++;//后置++,先使用,再+1
	//printf("a = %d, b = %d", a, b);
 
	int a = 10;
	int b = ++a;//前置++,先+1,再使用
	printf("a = %d, b = %d", a, b);
	return 0;
}

3.3.2 强制类型转换

#include <stdio.h>
 
int main()
{
	int a = (int)3.14;//原本定义为整形,初始化为浮点型,但是还是想以整形使用
	float f = (float)3.14;//与上一行是一样的理解
	return 0;
}

使用强制转化时会产生越界输出,所以一般不建议使用。

3.4 关系操作符:> >= < <= != ==

3.5 条件操作符:exp1? exp2: exp3

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	int a = 10;
	int b = 20;
	int c = 0;
	int d = 0;
	int e = 0;
	c = a + b;
	d = a - b;
	e = a > b ? c : d;
	//如果如果a>b成立则执行a-b,e的值就是a-b的值;
    //现在a>b不成立,则执行a+b,e的值就是a+b的值
	printf("%d\n", e);
	return 0;
}

3.6 逗号表达式:exp1, exp2, exp3, …expN

执行规则:从左至右依次执行expression,并将最后一个expression作为逗号表达式的结果。

int main()
{
	int x, y;
	x = (5, 3, 9);//5,3可直接忽略,最后会将9赋给x;
	y = (x++, x + 2, x * 2);
	//等价于
	int x, y;
	x = 9;
	y = (x++, x + 2, x * 2);
	//y的最后结果为20
	//1.x++等价于x=x+1,所以这一步x变为10;
	//2.x+2 执行结果为12,但并没有进行赋值操作,所以x还是为10;
	//3.执行y=x*2;对于逗号表达式来说,只有最后一个子表达式才有赋值的操作
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值