|--------------初识C语言--------------|

目的:主要以搭框架为主, 简单的认识和掌握C语言

保持空杯心态和静心去学习,如果读者对C语言有见解,欢迎在评论区提问交流,一同分享自己的学习收获;

目录

目的:主要以搭框架为主, 简单的认识和掌握C语言

 1.什么是C语言?

 2.第一个C语言

 3.数据类型

 4.变量

 5.常量

 6.字符串

 7.注释

 8.转义字符

 9.选择语句

 10.循环语句

 11.函数

 12.数组

 13.操作符

 14.关键字

 15.#define定义的常量和宏

 16.指针

 17.结构体 


1.什么是C语言?

C语言是一门计算机编程语言,简单来讲就是人和计算机能交流的一种高级语言;

2.第一个C语言

这里讲一下如何用visual stdio2019/2022这个编译器来编写第一个C语言,建议实操;

然后就可以编写第一个C语言代码了,一定要用英文输入法,按ctrl+F5就可以运行了;

---------------

main叫做主函数,主函数是所有程序的入口,C语言中必须要有主函数,有且只有一个主函数;

主函数表示:

int main()
{


  return 0;
}

printf函数是打印函数,将字符串打印在显示板上,%d是一种整型占位符,字符串中会说占位符;

scanf函数是输入函数;两者使用时要有#include<stdio.h>

3.数据类型

为了描述不同的数据,因而有不同的数据类型,可分为三类

1.整形的数据类型(描述整数)

short       短整型            占2Byte=16bit          

int           整型                占4Byte=32bit             

long        长整型            占4Byte=32bit

long long 加长整型       占8Byte=64bit

2.浮点型(描述小数)

float       单精度浮点型  占4Byte

double   双精度浮点型  占8Byte

3.字符型(描述字符,如a,A...)

char      字符型             占1Byte

为什么会有这么多类型呢?因为不同的类型所表示的数范围不一样,所占存储空间也不一样,给出那么多类型可供我们选择,选择合适的数据类型能节省很多空间,也可用来创建变量

如何测量它们所占的存储空间的大小呢?用sizeof这个关键字(单位:字节Byte)

 整型数据范围公式:-2^n-1~2^n-1减1,n为整型所占字节(Byte)——了解即可;

4.变量

什么是变量?值可以变的叫变量;

1.变量(可分为局部变量和全局变量)

变量的命名规则:

1.只能用大写字母,小写字母,数字,下划线(_)命名;

2.不能以数字开头,如1bc就是错的;

3.变量名是区分大小写的;

4.变量名不能使用关键字;

2.如何定义(声明)变量?

数据类型 变量名;如int a;  float b;  char c;

一个好的编程风格就是在声明变量的同时给一个初始值 如int a=0; float b=1.5; char c=‘A’;

3.局部变量和全局变量

可以简单的认为在大括号{}内部创建的变量叫做局部变量;在大括号{}外部创建的变量叫做全局变量;

局部变量:

 全局变量:                                           

 如果局部变量和全局变量冲突时,局部优先:

 4.变量的作用域和生命周期

作用域:可简单理解为作用范围

生命周期:可简单理解为从变量创建到变量销毁的一个时间段

局部变量的作用域:变量所在的局部范围;

局部变量的生命周期:进作用域生命周期开始出作用域生命周期结束;

全局变量的作用域:整个工程(程序);

全局变量的生命周期:整个程序(工程)的生命周期;

5.常量

什么是常量?值不能变的叫常量;

常量可分为以下4种:字面常量,const修饰的常变量,define定义的标识符常量,枚举常量;

1.字面常量:

 2.const修饰的常变量:

3.define定义的标识符常量:

4.枚举常量:

枚举(能一一列举的) 先要有包容心态,大概了解一下,也可以去实操一下;

 6.字符串

什么是字符串?字符串就是由双引号引起的一串字符,如“abcdef”

注意:字符是单引号引起的一个字符

字符串的结束标志是一个\0的转义字符。在计算字符串长度时\0不算做字符串内容,如“abcdef”字符串长度是6,但“abcdef”中是有\0这个转义字符的,由下图可见arr1占7个字节,表面上看只占6个,但其实\0也占一个字节

 那如何求字符串长度呢?用strlen这个库函数,但要使用它要先声明,即添加#include<string.h>

strlen是计算\0之前的字符串长度;

 我们在arr中加上\0呢?//%s是打印字符串的,%d是打印整型的,%c是打印单个字符的,%f是打印小数的

 说明了\0是字符串终止的标志;

7.注释

主要有两种/*.......*/和//........,注释的东西是不会被编译器所编译(识别)的;

也可用快捷键Ctrl+K+C注释,Ctrl+k+u解注释

8.转义字符

转义字符也是字符,要用单引号引用,其占位符是%c;

转义字符意义

ASCII码对应的10进制

\a响铃007
\b退格008
\f换页012
\t水平制表符(相当于Tab)009
\v垂直制表符011
\'单引号039
\"双引号034
\\反斜杠092
\n换行,将当前位置转移到下一行开头010
\r回车,将当前位置转移到本行开头013
\dddddd表示1~3个8进制数对应的字符八进制转十进制
\xdddd表示2个十六进制字符十六进制转十进制

还有一个\?转义字符,就表示在控制板上打印?

注意区分数值0、‘0’、‘\0’

0就表示0,‘0’对应的ASCII值为48,‘\0’对应的ASCII值为0;

ASCII码表:

举个例子:

9.选择语句

首先,写法//C语言中非0即真,0是假

if (条件为真)

    {printf(”“);}//大括号用于多条语句

else if()

    {printf(”“);}

else

    {printf(”“);}

 10.循环语句

循环分三种:

while循环、for循环、do...while循环

我们只讲while循环

声明变量;

while(循环条件)

{   printf(”“) ;           变量自加;如a++表示a自己增加1                                         }

 只有达到while的循环条件后才能跳出循环。

11.函数

简单的了解一下函数,首先是写法(只是简单的了解)

函数类型 函数名(可以有参数)

{

                让函数做的一些事;

                return 函数类型的值;

};

调用函数:函数名();

我们举个例子:计算3+5

 我们用函数试试

 原理:我们可以将函数看成一个加工厂,把参数看成原料,大括号内看成加工厂内,return函数返回值看成加工后的产品,main函数看作接收者;

12.数组

什么叫数组?数组就是一系列同类型的数据放在一个组里

如1,2,3,4,5,6,7,8,9是整数我们可以放在{}里

{1,2,3,4,5,6,7,8,9}

如何定义数组呢?数据类型 数组名[元素个数]={各个同类型的元素};

如int a[]={1,2,3,4,5,6,7,8,9};//数组的元素个数可以不写,但一定要初始化(大括号内的各个同类型的元素一定要写)

如何打印数组呢?

我们可得出:

下标01234
数组对应元素12345

 下标是从0开是的对应数组元素1,下标1对应数组元素2..........

如何打印整个数组元素呢?需要我们用到循环结构了

13.操作符

操作符分为:算术操作符、移位操作符、位操作符、赋值操作符单目操作符关系操作符逻辑操作符条件操作符、逗号表达式、下标引用、函数调用和结构成员;

我们点到为止,讲一下绿色的操作符;

1.算数操作符

操作符+-*/%
意思加法减法乘法除法取余

取余%操作符:就是取两个数相除的余数;如5%2=1,(5除2等于2......1);

注意:/操作符,5/2=2.5?

 2.移位操作符(涉及到了2进制)

操作符<<>>
意思左移(扩大)右移(缩小)

3.位操作符

操作符&|^
意思异或

4.赋值操作符

操作符=+=-=/=*=&=|=^=<<=>>=
意思赋值加赋值减赋值除赋值乘赋值与赋值或赋值异或赋值左移赋值右移赋值

赋值:如a=5;将等号右边的值给等号左边;

其他的赋值操作符与+=一个意思

我们讲一下+=是什么意思:如a+=3的意思是a=a+3,就是a=a+3的简化形式;

5.单目操作符(只有一个运算对象)

操作符意思
逻辑反操作
-负值(取反)
+正值
&取地址
sizeof测量所占字节的大小
~对一个数的2进制按位取反
--

前置、后置--

++前置、后置++
*解引用操作符
(类型)强制类型转换

首先,先讲一下取反操作符,在C语言中非0真,0是假;!的 意思就相当于颠倒是非,把真变为假,把假变为真;

 然后讲一下+,-,这个很容易理解;

最后我们来讲一下自加(自减和自加一个道理);

自加包括前置自加和后置自加(自减也一样)

 

 注意sizeof和strlen的区别:

sizeof是操作符,是计算所占内存空间的大小;

strlen是库函数,只针对字符串。求字符串的长度。计算字符串\0之前的字符个数;

其他的后面会讲,这里主要让大家初识一下C语言;

6.关系操作符

操作符意思
>大于
>=大于等于
<小于
<=小于等于
!=不等于
==等于

前面四个就是字面意思,我们讲讲后两个;

 如何比较字符串的大小呢?用strcmp库函数,使用它是要和使用strlen一样,要在main函数上面标明#include<string.h>

7.逻辑操作符

操作符意思
&&逻辑与
||逻辑或

输一个在2~10的数,并打印hehe,输入一个大于10,小于0的数,并打印haha;

逻辑与&&是两个都为真时才为真;逻辑或||有一个为真则为真,全假才为假; 

8.条件操作符(三目操作符,即有三个运算对象) 

操作符意思
  ? :表达式1?表达式2(真):表达式3(假)

如比较3和2的大小 ,如果3>2输出6,否则输出0;

9.逗号操作符 

 

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

操作符意思
[ ]下标引用符
( )函数调用符
.获取结构变量的成员

->

指向结构体

14.关键字

关键字在C语言中是有着特殊意义和用法的;

下面我们看看C语言中的关键字有哪些?

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        typeof        union        unsigned        void

volatile         while

首先,我们先分个类

循环分支数据类型修饰自定义类型其他特殊

break

continue

do while

while

for

if  else 

goto

switch

case

break

default 

signed

unsigned

char

short

int 

long 

long long

float

double

const-修饰变量

static-静态

auto-修饰局部变量

enum-枚举

struct-结构体

union-联合体/共用体

typedef

extern

register

return

sizeof

volatile

1.typedef关键字

意思是重命名;

 2.register关键字

意思是建议编译器将变量放在寄存器中,那么什么是寄存器呢?

寄存器其实本质上是存储数据的一种,其他的还有高速缓存、内存、硬盘;

那么他们有什么区别吗?

按照读取速度来看:寄存器的读取速度最快>高速缓存>是内存>硬盘;

按照存储空间来看:寄存器的存储空间最小(Byte)<高速缓存(M)<内存(8G/16G)<硬盘(500G/1T);

 3.static静态关键字

static关键字可以修饰局部变量;

如果有static关键字修饰局部变量呢?

 static修饰全局变量时;

extern是从外部引用的意思,全局变量和函数也可以从外部文件中引入;

如果用static修饰全局变量? 

 static修饰全局变量时?

用static呢?static使得函数的外部链接属性变为内部链接属性,即只能在其所在的源文件(1文件)中使用;

 其实本质上被static修饰的局部变量改变了存储区域;

内存区域存放内存释放时间
栈区局部变量和函数参数等临时变量由编译器自动分配释放
堆区动态内存分配由程序员分配释放
静态区全局变量和静态变量程序结束时释放
常量区常量程序结束时释放
程序代码区2进制表示的程序代码\

局部变量:被static修饰前:栈区;被static修饰后:静态区;

15.#define定义的常量和宏

1.#define定义常量

2.宏 //原理:宏会被他的宏体所替换

再来一个试试;

16.指针

首先,学习指针前要先了解一下内存;

内存是电脑上的储存器,计算机所有程序都是在内存中运行的;

我们可以把内存划分成好多个内存单元,每个内存单元占一个字节,如果把每个内存单元进行编号,这些编号被称为内存单元地址,也成为指针

 

指针的应用

指针大小;

17.结构体 

 用struct关键字(自动创建类型)

 我们今天就讲到这里了,如果喜欢本文,不妨点个赞,我会继续分享接下来我的学习内容的,让我们一同成长;

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值