初始c语言02

从头学习c语言的第二篇文章,接着第一遍的内容,介绍一些基本的c语言的知识的,会通过例子来解释,基础不牢地动山摇,所以公主王子请学习!

1、选择语句

生活中存在着各种选择,当然c语言也一样

c语言的选择语句主要有

  • If else语句
  • switch语句

下面主要介绍 If else 语句

举个例子

如果你认真学习了   --- >就会找到一份好工作(一个好offer)

 假如你不学习         --->就会回家耕田

这就是一个选择,在c语言怎么实现呢?If 就是如果的意思 else就是剩下的意思

很明显这个选择非他既我(不是第一个就是第二个)

代码如下(注意看注释):

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
    int t = 0;//定义变量t,等于1表示认真学习,等于0表示不学习
    printf("你会学习吗?");
    scanf("%d", &t);//输入整数,做出选择
    //下面判断你的选择是1还是0
    if (t == 1)
    {
        printf("你好好学习了,拿到了好offer,走上人生巅峰");
    }
    else
    {
        printf("不好好学习,只能回家耕田");
    }
    return 0;
}

2、循环语句

生活中也充满许多着循环的事情,比如你每天都去耕田,每天都需要浇水等等一样的工作,这就是一种循环,c语言的循环语句也相当的重要

c语言中实现循环主要有以下的语句

  • while
  • for语句(后面会讲)
  • do...while语句(后面会讲)

现在用一个例子实现while语句循环,比如,刚说了你一直认真学习就能拿到好offer,但这也需要一个过程,比如你日复一日的一直循环敲代码,直到你的有效代码量达到20000行时,你拿到了一份好offer,这就是一个循环的例子,现在我们用while循环实现:

#include <stdio.h>
int main()
{
    printf("好好学习\n");
    int line = 0;
    while(line<=20000)
    {
        line++;
        printf("我要努力敲代码%d\n",line);
  
    }
    if(line>20000)
    {
        printf("收到好offer\n");
    }
    return 0;
}

3、函数

通俗来讲,函数相当于一个工具,比如一个加法函数就等于一个加法器,把数据输入进去,就能在函数里面自己计算,然后输出一个结果,函数的作用就是简化代码,实现代码复用,当你需要实现加法时,不用每次都要重新写程序,直接引用函数就可以输出结果。

下面举个例子:

#define _CRT_SECURE_NO_WARNINGS
#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);//把Add函数的返回值赋值给sum,这里就是运用了函数的返回值(加法结果)
    printf("sum=%d\n",sum);
    return 0;
}

4、数组

如果要储存一串数据,该怎么储存呢?

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

4.1数组的定义

举个例子,假如你要储存1-10的数字

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

4.2 数组的下标

c语言中,规定数组的每个元素都有一个下标,相当于给每个元素(数据)编号,像房子的门牌号一样,如果我要访问某个数据的时候,直接找到对应的下标(门牌号)就可以了。

注意:下标是从0开始的。

比如

Int arr [10] = {1,3,5,7,9,2,4,6,8,10};//如果数组10个元素,下标的范围是0-9

int arr[10 ]13579246810
下标0123456789

目录

1、选择语句

2、循环语句

3、函数

4、数组

4.1数组的定义

4.2 数组的下标

4.3 数组的使用

4.4 数组定义时的注意


4.3 数组的使用

#include <stdio.h>

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

4.4 数组定义时的注意

1、C99标准之前,数组的大小都是用常量或者常量表达式来指定的

     Int arr[10]={0};//ok

    Int arr[4+6]={1,2,3,4}//ok;​​​​​​

  1. 2、C99标准之后,支持了变长数组,这个时候允许数组大小是变量,但是这种指定方式的数组是不能初始化的

        Int m = 100;

        Int arr[m];//ok

        Int arr[m]={0};//mistake,错误

注意:上述初始化不支持,但应用是支持的例子如4.3数组的使用 所示

5、操作符

5.1常见的操作符

  • 算术操作符

+    -   *   /   %

上面分别为c语言中的加、减、乘、除、取余。

加减乘除大家都知道,下面解释以下取余,其实取余就是取余数的意思

就是输出除法结果中的余数(既是小数位),比如:7/2取余就是5,在c语言中的语句为7/2%=5;

特别注意:

  • 1、c语言中除法的两端都是整数的时候,执行的是整数除法,如果两端只有一个浮点数就执行浮点数的除法
  • 2、取模操作符 % (取模操作符的两个操作数只能是整数)
#include <stdio.h>

int main()
{
	int a = 7 / 2;//除法取整数
	//取模操作符的两个操作数只能是整数
	int b = 7 % 2;//取模
	//除法的两端都是整数的时候,执行的是整数除法,如果两端只有一个浮点数就执行浮点数的除法
	float c = 7 / 2.0;
	printf("%d\n",a);
	printf("%d\n",b);
	printf("%.2f\n",c);//%f表示打印数据类型为浮点数,%.2f表示两位小数的浮点数
	printf("%.3f\n", c);//同理,%。2f表示三位小数的浮点数
	return 0;
}
  • 移位操作符

>>     <<

这个是关于2进制运算,后面再补充

  • 位操作符

&    ^    |

这个也是关于2进制运算,后面再补充

  • 赋值操作符

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

c语言中规定,=是赋值操作符,==才是数学上的等于,比如

int a =10;

int b =20;

int c=b;//将变量b的值赋给c,既c=b=20;

//下面是用if语句判断c是否等于20

if(c==20)

{

        printf("hehe\n");

}

+=操作符

a+=1;//与下面表达的意思一样

a=a+1;

b-=3;

b=b-3;

*=        /=        &= 等 操作符同理

  • 关系操作符

>                        大于         

>=                      大于等于

<                        小于

<=                      小于等于

!=                       不等于       

==                       等于

5.2单目操作符

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

int main()
{
	int flag = 0;
	if (!flag)//!为取反,将0和1翻转(对调)
	{
		printf("xixi\n");
	}
	return 0;
}
  • -负值(+正值同理)
#include <stdio.h>

int main()
{
	int a = -10;
	int b = -a;//取负值,负负得正
	printf("%d\n",b);
	return 0;
}
  • sizeof计算操作数长度
#include <stdio.h>
int main()
{
	int a = 10;
	printf("%d\n",sizeof(a));
	printf("%d\n",sizeof(int));
	printf("%d\n"sizeof a);
	//注意:printf("%d\n",sizeof int);是不允许的
	return 0;
}

特别的,还可以用sizeof()计算数组的长度,单位为字节

int main()
{
	int arr[10] = {0};
	printf("%d\n",sizeof(arr));//计算的是整个数组的大小(4x10),单位是字节
	printf("%d\n",sizeof(arr[0]));//计算的是这个数组的0位的大小,就是一个int的大小,为4个字节
	printf("%d\n",sizeof(arr)/sizeof(arr[0]));//10 - 数组的元素个数
	return 0;
}
  • 前置++和后置++的区别
#include <stdio.h>

int main()
{
	int a = 10;
	int b = a++;//后置++,先使用,后++(运算)
	//先赋值 b=a; 后 a=a+1;
	int c = ++a;//前置++。先++,后赋值
	//先a=a+1; 后赋值 c =a;
	printf("%d\n",a);
	printf("%d\n",b);
	printf("%d\n",c);
	return 0;
}
  • 前置--和后置--的区别
#include <stdio.h>

int main()
{
	int a = 10;
	int b = a--;//后置--,先赋值,后--(后运算)
	printf("%d\n", a);//9
	printf("%d\n",b);

	int c = 10;
	int d = --c;//前置--,先运算,后赋值
	printf("%d\n",c);
	printf("%d\n", d);

	return 0;
}
  • (类型)强制类型转换

顾名思义强制类型转换就是用来转换数据的类型的。

#include <stdio.h>

int main()
{
	int a = (int)3.14;
	//3.14是字面浮点数,编译器默认理解为double类型
	//(int)作为强制转换 格式为(类型)
	printf("%d\n",a);
}

注意:int a = int (3.14);//这种表达是错误的

5.3逻辑操作符

&&                逻辑与(生活中的并且)

||                   逻辑或(生活中的或者)

  • &&与运算(逻辑与)

参与运算的两个变量都为真时,结果才为真,否则为假

  • ||或运算(逻辑或)

参与运算的两个变量只要有一个为真,结果就为真

例子(注意看里面的注释)

#include <stdio.h>

int main()
{
	//&&逻辑与  -并且 
	//||逻辑或  -或者
	int a = 10;
	int b = 0;
	//(&& 并且)双个数都非零才为真,所以(a&&b)为假
	if (a && b)
	{
		printf("xixi\n");
	}
	//(|| 或者)双个数至少一个为真即为真,所以(a&&b)为真
	if (a || b)
	{
		printf("hehe\n");
	}
	
	return 0;
}

5.4 条件操作符(三目运算符)

表达式1 ? 表达式2:表达式3

exp1 ? exp2 : exp3

先判断表达式1的值是否为真,如果为真的就执行表达式2,如果表达式1为假就执行表达式3

举例:

#include <stdio.h>

int main()
{
	int a = 10;
	int b = 20;
	int max = a>b?a:b;//如果a>b 则max=a(条件一);如果a不大于b,则max=b(条件二)
	printf("%d\n",max);
	return 0;
}

5.5 逗号表达式

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

逗号表达式就是逗号隔开的一串表达式

逗号表达式的特点是:从左到右依次计算,整个表达式的结果的最后一个表达式的结果

举例:

#include <stdio.h>

int main()
{
	int a = 10;
	int b = 20;
	int c = 0;
	//       c =8  a=28  5
	int d = (c=a-2,a=b+c,c-3);//逗号表达式的结果为最后一的式子的结果 既为5
	printf("%d\n",d);
	return 0;
}

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

  • 下标引用

    arr[3]=20; //[ ]就是下标引用操作符 arr和3就是[]的操作数

  • 函数调用

int sum = Add(2, 3);//其中()就是函数调用操作符,Add,2,3都是()的操作数

  • 结构成员

.        ->

以后再补充

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值