[C语言]选择语句--循环语句--函数--数组--操作符--常见关键字------->初识C语言(三)

文章目录

  • 前言
  • 一,选择语句
  • 二,循环语句
  • 三,函数
  • 四,数组
  • 五,操作符
  • 六,常见关键字
  • 总结

前言

本篇内容主要记住初识C语言第三节内容。

主要内容包括:选择语句--循环语句--函数--数组--操作符--常见关键字

——————————————————————————————————————————                                                               ****正文开始****

一,选择语句

     在我们日常生活中,我们要经常做选择。在C语言中也是如此,选择好好学习,还是选择不好好学习。这时候我们选择不同的选项,就会得到不同的结果。这时候就会用到 if 语句。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

//********选择语句**********
int main() {
	int input = 0;
	printf("你要好好学习吗?(1/0)\n");
	//输入
	scanf("%d", &input);
	//判断
	if (input == 1) {
		printf("好offer\n");
	}
	else {
		printf("回家卖红薯\n");
	}

	return 0;
}

演示结果:





二,循环语句

    有些事必须一直做,比如我日复一日的讲课,比如大家,日复一日的学习。在C语言中,我们也经常会使用循环,

C语言中如何实现循环呢?

while语句-讲解      -----这里先以while循环为例子

for语句(后期讲)

do ... while语句(后期讲)

int main() {
	int line = 0;
	printf("练习敲代码\n");
	while (line < 20000) {
		printf("敲代码 --> %d行\n",line);
		line = line + 1;
	}
	if (line >= 20000) {
		printf("好offer\n");
	}
	else {
		printf("火候还不够\n");
	}
	return 0;
}

 三,函数

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

这里以两个数的和为例子举例说明:

#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) { Add --- 函数名   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);
    printf("sum = %d\n", sum);
    return 0; }

结果:

四,数组

要存储 1-10 的数字,怎么存储?
C语言中给了数组的定义:一组相同类型元素的集合

数组定义

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

数组的下标

C语言规定:数组的每个元素都有一个下标,下标是从0开始的。
数组可以通过下标来访问的。
比如:
int arr[10] = {0};
//如果数组10个元素,下标的范围是0-9
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//数组下标       0,1,2,3,4,5,6,7,8, 9

数组的使用

int main() {
	//arr 就是10个元素的整形数组
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	//数组下标       0,1,2,3,4,5,6,7,8, 9
	//printf("%d\n", arr[3]);
	int i = 0;//使用i产生下标
	while (i <= 9) {
		printf("%d ", arr[i]);
		i = i + 1;
	}
	//存字符-----字符数组
 //   char ch[5] = { 'a','b','c','d','e' };
	//char ch[6] = { "hello" };
	//int arr[10] = {1}; 不完全初始化 把第一个元素初始化为1  剩下为0

	return 0;
}

五,操作符

      也叫运算符,C语言包括了很多操作符 ---->灵活

(1)算数操作符: +   -   *   /   %

//算数操作符: + - * / %
int main() {
	//int a = 7 / 2;
	//printf("%d\n", a);// 3
	//double b = 7.0 / 2;
	//printf("%lf\n", b);// 3.500000

	  % 取模(余)
	//int n = 7 % 2;
	//printf("%d\n",n);
	
	int n = 0;
	scanf("%d",&n);
	if (n % 2 == 1) {
		printf("奇数\n");
	}
	else {
		printf("偶数\n");
	}
	//   注意:   %  ---取模操作符只能作用于整数

	return 0;
}

(2)移位操作符: >>     <<

移位操作符:其实是作用于一个数的二进制数

int main() {
	int a = 3;
	int b = a << 1;
	printf("%d\n", b);
	//  00000000 00000000 00000000 00000011       --3
	                   //a<<1
	//  00000000 00000000 00000000 00000110       --6
	return 0;
}

(3)位操作符 :   &     |

 位操作符:

  & -----> 按位与 :  按位与, 对应的二进制有0,则为0,全1才为1 

 ^  ------> 按位异或 :    按位异或, 对应的二进制  相同为0,相异为1   

  |  ------ >按位或 :  按位或, 对应的二进制有1,则为1,全0才为0

//位操作符
// & 按位与  ^按位异或   |按位或
//int main() {
//	int a = 3;      
//	int b = 5;
//	int c = a & b;
//	printf("%d\n", c);//执行结果: 1
//	// 3(a) 的二进制序列 00000000 00000000 00000000 00000011   
//	// 5(b) 的二进制序列 00000000 00000000 00000000 00000101
//	   //       按位与, 对应的二进制有0,则为0,全1才为1
//	// &               00000000 00000000 00000000 00000001
//
//	int d = a | b;
//	printf("%d\n", d);//执行结果:  7
//	// 3(a) 的二进制序列 00000000 00000000 00000000 00000011   
//    // 5(b) 的二进制序列 00000000 00000000 00000000 00000101
//	//          按位或, 对应的二进制有1,则为1,全0才为0
//    // |               00000000 00000000 00000000 00000111
//
//	int e = a ^ b;
//	printf("%d\n", e);//执行结果:  6
//	// 3(a) 的二进制序列 00000000 00000000 00000000 00000011   
//    // 5(b) 的二进制序列 00000000 00000000 00000000 00000101
//	//          按位异或, 对应的二进制  相同为0,相异为1
//	// |               00000000 00000000 00000000 00000110
//	return 0;
//}

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

int main() {
	int a = 10;
	a = a + 4;  //  =   赋值
	a += 4;     //  +=  复合赋值符
 
	a = a - 4;  //  =   赋值
	a -= 4;     //  -=  复合赋值符

	return 0;
}

(5)单目操作符----->只有一个操作数

!           逻辑反操作
-           负值
+           正值
&           取地址
sizeof      操作数的类型长度(以字节为单位)
~           对一个数的二进制按位取反
--          前置、后置--
++          前置、后置++
*           间接访问操作符(解引用操作符) (类型)       强制类型转换

举例分别说明:

1 >   !  逻辑反操作

int main() {
	int  a = 10;
	//C语言中 0表示假  非0表示真
	printf("%d\n", !a);
	int b = 0;
	printf("%d\n", !b);	//规定 为1 
	return 0;
}

2>    -   相反号   很好理解

3>  sizeof  是一个操作符  用来计算变量或者类型所创建变量占据内存的大小----单位是:字节

 sizeof 是一个操作符  用来计算变量或者类型所创建变量占据内存的大小----单位是:字节
int main() {
	int a = 10;
	printf("%d\n", sizeof(a)); // 4
	printf("%d\n", sizeof(int)); // 4

	return 0;
}

4>   ~   按位取反 --(2进制位)  0 -> 1    1 -> 0

 -1  是负整数
      负整数的二进制有原码,反码,补码
      内存中存储的是二进制的补码
       -1 的原码:      10000000 00000000 00000000 00000001
       -1 的反码:      11111111   11111111   11111111  11111110
       -1 的补码:      11111111   11111111   11111111  11111111
       b     = ~a  :       00000000 00000000 00000000 00000000

int main() {
	int a = -1;
	// -1 是负整数
	// 负整数的二进制有原码,反码,补码
	// 内存中存储的是二进制的补码
	//   -1 的原码:      10000000 00000000 00000000 00000001
	//   -1 的反码:      11111111 11111111 11111111 11111110
	//   -1 的补码:      11111111 11111111 11111111 11111111
	//   b = ~a  :       00000000 00000000 00000000 00000000
	int b = ~a;
	printf("%d\n", b);//执行结果:0
	return 0;
}

5>  ++a  前置++  : 先++  后使用
      a++  后置++  : 先使用 后++
      --a      前置--  : 先--   后使用
      a--      后置--  : 先使用 后--

int main() {
	int a = 10;// 12
	int c = a++;// 10
	int b = ++a;// 12
	printf("a = %d b = %d c = %d",a, b,c);

	return 0;
}

结果:

6> (类型)       强制类型转换

int main() {
	/*int n =(int)3.14;*/
	//int n = int (3.14)//error
	//printf("%d\n", n);

	return 0;
}

(6)关系操作符

>
>=
<
<=
!=   用于测试“不相等”
==      用于测试“相等”

(7)逻辑操作符

 && 逻辑与----> 并且
 ||    逻辑或----> 或者

int main() {
	int a = 3;
	int b = 5;
	if (a == 3 && b == 5) {
		printf("hehe\n");
	}

	return 0;
}

(8)条件操作符 :  exp1 ? exp2 : exp3

// exp1 ? exp2 : exp3
// 简化 if 语句
  int main() {
	int a = 0;
	int b = 0;
	int max = 0;
	scanf("%d %d", &a, &b);

	//比较
	//if(a > b){
	//	max = a;
	//}
	//else {
	//	max = b;
	//}
	// 三目操作符
	max = (a > b ? a : b);
	printf("%d\n", max);
	return 0;
}

(9)逗号表达式

逗号表达式会从左享有一次计算,整个逗号表达式的结果是最后一个表达式的结果

int main() {
	int a = 3;
	int b = 5;
	int c = 10;
	//                 0          4  
	int d = ( a + 2, b = a - 3, c = b + 4); 
	//逗号表达式会从左享有一次计算,整个逗号表达式的结果是最后一个表达式的结果
	printf("%d\n", d);

	return 0;
}

(10)下标引用操作符  [ ]

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

	return 0;
}

(11)函数调用操作符 

int sum = Add(3, 5);    Add --- 函数名   x,y ---形式参数

int sum = Add(3, 5 );   ( )  -----> 函数调用操作符  操作数 ( ) , 3, 5

Add(int x, int y) {
	//                  Add --- 函数名   x,y ---形式参数
	int z = x + y;
	return z;
}
int main() {

	int sum = Add(3, 5);  //  ( )  -----> 函数调用操作符  操作数 () , 3, 5
	
	printf("%d\n", sum);


	return 0;
}

六,常见关键字

常见关键字: 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

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
// break ---  终止  --》 在循环中使用 , switch
// switch   case 
//const 常属性 - 修饰变量  void - 无,空的-使用的函数的返回类型,函数参数,修饰指针
//三个可以自定义的类型:enum - 枚举    struct - 结构体  union - 联合体    
// extern -声明外部符号    
// register - 寄存器  return -返回,一般应用到函数
// static - 静态的

1):auto ---  自动  --》 定义自动变量

int main() {
	auto int a;//所有局部变量都是 auto 一般省略
	return 0;
}

2):typedef  --- 类型重定义

typedef unsigned int u_int;
int main() {
	//unsigned int - 无符号整形
	unsigned int num = 100;

	u_int num2 = 100;
	//  u_int 相当于给 unsigned 起了一个别名
	return 0;
}

3):register - 寄存器关键字

// 速度越快,造假越高,空间越小;寄存器 - 高速缓存 - 内存 - 硬盘 - 网盘
int main() {
	//a是寄存器变量
	//register  是建议作用,建议编译器放入寄存器
	register int a = 10;
    // 寄存器变量不能取地址

	return 0;
}

                                                                     ****正文结束****

———————————————————————————————————————————

总结

至此 初识C语言第三节内容全部结束 。

由于本人技术水平有限,如有出错,还望各位读者指正。

嘿嘿  创作不易 大佬们动动小手点个赞和关注呗。 QAQ

  • 37
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白又菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值