初识C语言3

目录

9.数组

9.1数组定义

9.2 数组的下标

9.3数组的使用

10.操作符

10.1算术操作符

10.2移位操作符

10.3位操作符

10.4赋值操作符

10.5单目操作符

10.6关系操作符

10.7逻辑操作符

10.8条件操作符

10.9逗号表达式

10.10下标引用、函数调用和结构成员

11.常见关键字


9.数组

要存储1-10的数字,怎么存储?

C语言中给了数组的定义:一组相同类型元素的集合

9.1数组定义

int arr[20];   
char ch[5]; 
double data[6];

以上是数组的创建

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

int arr2[5] = { 1,2,3,4,5 };
int arr3[30] = { 1,2,3,4,5,6,7,8,9,10 };

可以在监视窗口看出

在arr3不完全初始化,剩余元素默认初始化为0

9.2 数组的下标

C语言规定:数组的每个元素都有一个下标,下标是从0开始的。

数组可以通过下标来访问的。

比如:

int arr[10] = {0};

如果数组10个元素,下标的范围是0-9

int arr[10]0000000000
下标0123456789

9.3数组的使用

同样我们可以通过下标来找到元素

int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//	                0 1 2 3 4 5 6 7 8 9
	int i = 0;
	while (i < 10)
	{
		printf("%d ", arr[i]);
		i = i + 1;
	}
	return 0;
}

运行结果如下

10.操作符

10.1算术操作符

+    -    *    /     %

顾名思义以上的意思分别为

加           减         乘         除         取余/取模 

这里介绍下除跟取余/取模

以下用代码的形式表示

int main()
{
	printf("%d\n", 17 / 4);//4...1    / -除法-得到是商
	printf("%d\n", 17 % 4);//4...1    % -取余/取模 - 得到是余数
	printf("%.2lf\n", 17.0 / 4);//double 如果想得到2位小数前面加个.2即可
	printf("%lf\n", 17 / 4.0);//double
	printf("%lf\n", 17.0 / 4.0);//double
	//直接写出的浮点数,会被编译器识别为double类型

	printf("%.2f\n", 17.0f / 4);//float

	return 0;
}

运行结果如下 

如果想使用%的话 俩个数必须为整数。 

10.2移位操作符

>>                  <<

移动的是二进制的位 

10.3位操作符

&  按位与       ^按位异或         |按位或

 也是使用二进制位进行计算

10.4赋值操作符

=         +=         -=         *=         /=         &=         ^=          |=            >>=           <<=

    “=”很重要 

当int a 没有初始话的情况下 局部变量里面放的是随机值

所以最好给a初始化一个值 int a = 0;

+=   -=  *=   /=    &=   ^=    |=   >>=    <<= 都叫复合赋值符

   书写格式如下

int a = 0;
a=a+5;
a+=5;
a=a-10;
a-=10;
a*=2;
a/=5;

10.5单目操作符

!           逻辑反操作

-           负值

+           正值

&           取地址

sizeof      操作数的类型长度(以字节为单位)

~           对一个数的二进制按位取反

--          前置、后置--

++          前置、后置++

*           间接访问操作符(解引用操作符)

(类型)       强制类型转换

 单目操作符是只有一个操作数的操作符

!可以让假变成真,真变成假

        C语言中,0表示假,非0表示真

从图中可以看出

!把a(假)的值改变为了真所以打印了hehe

!把b(真)的值改变为了假所以没有打印

++ 前置++,后置++
-- 前置--,后置--

这里用代码形式表示

int main()
{
	int a = 5;
	int b = a++;//后置++,口诀:先使用,后+1
	//int b=a;a=a+1;
	printf("a=%d b=%d\n", a, b);//6 5
	return 0;
}

int main()
{
	int a = 5;
	int b = ++a;//前置++,口诀:先+1,后使用
	//a=a+1;b=a
	printf("a=%d b=%d\n", a, b);//6 6

	return 0;
}


int main()
{
	int a = 5;
	int b = --a;//前置--,口诀:先-1,后使用
	//a=a-1,b=a
	printf("a=%d b=%d\n", a, b);//4 4

	return 0;
}

int main()
{
	int a = 5;
	int b = a--;//后置--,口诀:先使用,后-1
	//b=a,a=a-1
	printf("a=%d b=%d\n", a, b);//5 4

	return 0;
}

10.6关系操作符

>

>=

<

<=

!=   用于测试“不相等”

==      用于测试“相等”

10.7逻辑操作符

&&     逻辑与

||          逻辑或

        &&就是并且

        ||就是或者

10.8条件操作符

exp1 ? exp2 : exp3

也叫三目操作符

int main()
{
	int a = 3;
	int b = 5;
	int m = 0;
	if (a > b)
		m = a;
	else
		m = b;

	m = (a > b ? a : b);

	return 0;
}

 a>b(表达式1)如果成立执行表达式2(a)表达式2结果是整个表达式结果

a>b(表达式1)如果不成立执行表达式3(b)表达式3的结果是整个表达式的结果

也可以理解为真执行表达式2假执行表达式3

10.9逗号表达式

exp1,           exp2,         exp3,         …expN

逗号表达式有特点:

从左向右依次计算,整个表达式结果是最后一个表达式的结果

int main()
{
	int a = 3;
	int b = 4;
	int c = 1;
	int d = (a = 2 + c, b = a - 1, c = a + b);
	//       //a=3      b=2        c=5
	printf("%d\n", d);
	return 0;
}

运行结果如下 

10.10下标引用、函数调用和结构成员

[ ]         ( )         .         ->

int main()
{
	int arr[10] = { 1,2,3,4,5 };
	printf("%d\n", arr[4]);//[] 下标引用操作符
	return 0;
}

[ ]就是下标引用操作符

int Add(int x, int y)
{
	return x + y;
}

int main()
{
	int z = Add(3, 5);//()函数调用操作符,Add,3,5 是()的操作数

	return 0;
}

( )就是函数调用操作符

11.常见关键字

auto  break   case  char  const   continue  default  do   double else  enum   extern float  for   goto  if   int   long  register    return   short  signed sizeof   static struct  switch  typedef union  unsigned   void  volatile  while

C语言提供了丰富的关键字,这些关键字都是语言本身预先设定好的,用户自己是不能创造关键字的。

C语言预留给自己的一些特殊符号,有特殊意义

这些符号被称为关键字

程序员不能自己创建关键字!!

类型:auto -自动 是可以省略的  char double  sizof enum shortt float int long signed-无符号的 unsigned-无符合的 struct void typedef-类型重定义    union-联合体类型

循环:break  continue  do while for  while

分支:switch break case defaule if else goto

函数:return

跟存储类型有关系的:exten 申明  register 寄存器(放到寄存器里面的 ) static静态的(放到静态区的) volatile 很少见

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值