C语言系列之初识C语言(二)2021.10.19

接着上期的内容,对C语言的重要知识做一个概述  

目录

 一.初识选择语句

二.初识循环语句

​​

三.函数

四.数组

五.操作符

六.关键字


 一.初识选择语句

人生中会遇到很多选择,无论对应的结果是怎样,都不应该感到后悔

选择语句,如下

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
	int input = 0;
	printf("你要好好学习吗?(1/0)");
	scanf("%d", &input);
	if(input==1)
	{
		printf("好offer");
	}
		else
    {

		printf("卖红薯\n");
    }

	return 0;
}

无论能不能拿到一个好offer,我们都应该持续扩充自身的知识储备,不然可能只能去“卖红薯”。 

😀

二.初识循环语句

有些事必须一直做,一直循环下去,比如 学习

在C语言中,循环语句有   while语句

                                          for语句 

                                          do ... while语句

由于本文的标题是初识C语言,今天就先介绍while循环,另外两个后期再分别介绍

有如下的代码

#include <stdio.h>
int main()
{
	int line = 0;
	while (line < 30000)
	{
		printf("继续写代码:%d\n", line);
		line++;//此处也可以用 line=line+1
	}
	if (line == 30000)
		printf("好offer\n");
	return 0;
}

当满足一定条件时,循环就停止了

三.函数

C语言中,一些独立的功能也能够封装成一个函数

#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)
{
   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]0000000000
下标0123456789

数组的使用

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

 如果要打印一个数组

 字符数组

char ch[5]={'a','b','c'};

这是不完全初始化,其余两个元素默认为0

char ch[6]={"hello"}

下面看一个例子 

 

 这里的B是错误的

原因是数组的大小是常量,而这里的n是一个变量

 关于数组,这里暂且说这么多。

五.操作符

1.算术操作符

+      -      *      /      %

这里主要介绍 / 和%

/:除

一个例子:9/2=4

原因是“/”号两边都为整数,执行整数除法,无论是int还是float,结果都是4

解决方法: 9/2.0 或9.0/2   结果4.500000

2.移位操作符

>>                     << 

 此处以左移为例

运行结果是

原因: 

 由1*2^1=2  变为1*2^2=4

 3.位操作符

&               ^                  |

& 按位与 (对应的二进制位有0则为0,全1才为1)

|  按位或  (有1为1,全0为0)

^  按位异或 (相同为0,相异为1)

这里就拿&举例

 那么,为什么结果是1呢?

4.赋值操作符

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

5.单目操作符

a+b有两个操作数 ,所以+为双目操作符

!           逻辑反操作

-           负值

+          正值

&           取地址

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

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

--            前置、后置 --

++          前置、后置 ++

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

(类型)       强制类型转换

(1)--            前置、后置 --

         ++          前置、后置 ++

前置就是先++后使用,后置就是先使用后++

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

return 0;
}

结果:11,10

(2) (类型)       强制类型转换

int main()
{
int n=3.14;
int n=(int)3.14
return 0;
}

6.关系操作符

>

>=

<

<=

!=      用于测试“不相等”

==      用于测试“相等”

 7.逻辑操作符

&&       逻辑与 

||          逻辑或

&&       逻辑与  (并且)

||          逻辑或  (或者)

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

exp1 ? exp2 : exp3

功能:简化if语句

#include<stdio.h>
int main()
{
	int a = 0;
	int b = 0;
	int max = 0;
    scanf("%d%d",&a,&b);
    if(a>b)
    max=a;
    else
    max=b;
	printf("%d\n", max);
   return 0;
}

//使用条件操作符
#include<stdio.h>
int main()
{
	int a = 0;
	int b = 0;
	int max = 0;
    scanf("%d%d",&a,&b);
    max=(a>b?a;b;);
	printf("%d\n", max);
   return 0;
}

 exp1 ? exp2 : exp3

表达式1结果为真,表达式2算3不算,结果为表达式2

表达式1结果为假,表达式3算2不算,结果为表达式3

9.逗号表达式(从左向右以此计算,但整个表达式的结果是最后式子的结果)

exp1, exp2, exp3, …expN

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

 

 (b=0,c=4) ——> d=0+4=4

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

[]      ()      .       ->

六.关键字

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-自动-定义自动变量

const-修饰常变量,修饰指针

关键字 typedef

typedef 顾名思义是类型定义,这里应该理解为类型重命名

//将unsigned int 重命名为uint_32, 所以uint_32也是一个类型名
typedef unsigned int uint_32;
int main()
{
    //观察num1和num2,这两个变量的类型是一样的
    unsigned int num1 = 0;
    uint_32 num2 = 0;
    return 0;
}

现在是10月20日的0点48分,两个多小时终于把这篇博客完成了,准备睡了。

  • 19
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值