初识C语言(二)(基础详细版,小白可自学)

本文详细介绍了C语言中的选择语句、循环结构(for,while,do-while)、函数、数组、指针、结构体等核心概念,以及编译器注意事项、面试技巧和常见操作符的使用。强调了编程学习中的耐心和自我提升的重要性。
摘要由CSDN通过智能技术生成

目录

一、选择语句

1.基础语法  if else 

二、循环语句

1、for循环

2、while循环

3、do while 循环

三、函数

四、数组

1、概念

五、小插曲 面试环节

1、IO型

2、接口型

六、题目练习 一些0的比较

1、计算表达式的值

2、题目​编辑

3、题目​编辑

4、返回最值

七、操作符

1、算术运算符

2、移位操作符

3、位操作符

4、赋值操作符

5、单目操作符

6、关系操作符

7、逻辑操作符

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

9、逗号表达式

10、下标引用操作符

11、函数调用操作符

八、关键字

1.关键字typedef    只能对类型

2、关键字static

①修饰局部变量

②修饰全局变量

③修饰函数

④其他:register 寄存器

九、define 定义宏和常量

十、vs code的 .h和.c 区别

十一、指针

1、内存

2、指针变量的大小

3、多个变量定义的区别

十二、结构体

1、结构体是把单一类型整合成结构体

2、   结构体类型定义

十三、结尾Ending:

1、心理是很强大的事情,请不要给自己设限!!!

2、空杯心态,耐得住寂寞,坚持学习并且输出(写博客)  踏踏实实

4、博客是对自己知识的总结,是记录学习的一个过程,说明是愿意分享的人。

5、挤时间学习:欲戴王冠,必承其重。把时间用在刀刃上,看有没有把时间用在刀刃上!

7、学好编程,不仅仅是学C语言

8、不要跟别人的步伐,自己学的什么样只有自己心里最清楚。学任何事情,任何东西要按照自己的节奏来,慢慢学,不要急,日积月累总会成功,坚定自己的信念!


一、选择语句

大多数写代码前写上三个#。。。

#define  _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include<string.h>

编译器不会把所有的错误都指出来哟!

1.基础语法  if else 

if()
{}
else()
{}

C语言实现选择①if  else  (代码如下,注意else后面不能跟条件了)  ② Switch(先了解即可,后面会讲解)

二、循环语句

易错点:输入printf时候注意括号的大小写

1、for循环

2、while循环

3、do while 循环

三、函数

想象: 原材料——工厂——产品

           n1 n2 (输入数据)——函数——结果(输出)

定义函数一定要有返回类型

四、数组

1、概念

①数组:放置一组相同数据的集合

int arr[8]={0,1,2,3,4,5,3,5};   //数组 整形数组,最多存放八个元素

               0 1 2 3 4 5 6 7

②数组的下标:规定从0开始,记住!!!数组是通过下标来访问的

五、小插曲 面试环节

很多互联网公司在笔试环节都采用在线OJ的形式

1、IO型

所有的代码都是自己来完成和实现 :输入、计算、输出

2、接口型

只需要完成一个函数

假设其他需要的数据都是准备好的

六、题目练习 一些0的比较

1、计算表达式的值

0 数字0

‘0’ 字符0 ASCII 48

'\0' 字符 ASCII 0

EOF -end of file   文件结束标志 值-1

2、题目

1、数组是以\0结尾的,如果数组长度不确定,那么数组的strlen的计算也会不准确!!!

2、数组数组长度确定,那么数组的值不是数组长度的话,会默认为0

3、题目

注意C99之后,支持了变长数组,这个时候允许数组的大小是常量,但是这种指定方式的数组是不能初始化的。  如上图所示,m是变量,不可以初始化数组大小。VS下面不支持变长数组!

C语言中数组的长度和大小的疑难点:在字符数组中,\0作为结束标志,不计入字符串长度,但占内存空间。

4、返回最值

七、操作符

1、算术运算符

/

除号7/2=3 除号的两端都是整数,执行的整数除法;

如果两端只要有一个浮点数的时候,执行浮点数7/2.0=3.5

%取模7%2=1
小数

.2  .3 f

这种写法

2、移位操作符

3、位操作符

4、赋值操作符

a=20; 赋值操作符

a+=3; a=a+3;

5、单目操作符

比较:双目操作符:a+b +号

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

!反操作,真为假,假为真,非0表示真,只有0和1的区别!

负号-a;

size of 单目操作符  size of( int );  size of(arr数组)  计算的是数组的长度,n*4,单位为字节!

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

--     b=a--  后置:先使用,后++,先把a的值赋给b,在a+1; 

b=--a,先赋值-1给b,在-1,前--,后使用

++  a++

int  a = 3.14;编译器默认double类型

6、关系操作符

a==3———a等于3,而不是a赋值3

7、逻辑操作符

&&逻辑与 ——并且,两个同时满足

||逻辑或——或者,只要一个满足即可

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

e>1?a:b 如果e>1为真,则a为真,否则b为真

9、逗号表达式

特点:是逗号隔开的一串表达式

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

10、下标引用操作符

[]—— 下标引用操作符   arr和3 是[]的操作数

11、函数调用操作符

八、关键字

关键字是不能自己创造出来的。

1、char long int float double 

2、for while do while break   if else 

3、switch case   default

4、const 常属性   

5、enum 枚举   struct 结构体  union联合体(共用体)

6、register 寄存器   return 函数返回值   signed 有符号的   static  静态的    typedef类型重命名

7、void 空类型 

注意:变量的名字不能是关键字

变量命名规则:有意义,不能是关键字,必须由字母数字下划线组成,不能用数字开头,  int-2b是对的。

1.关键字typedef    只能对类型

①、定义:类型重命名

2、关键字static

1、用来修饰变量和函数的

①修饰局部变量

a是一个局部变量,每调用一次就给他重新赋值,局部变量生命周期进入范围创建,出范围销毁,一旦调用完,就销毁值!

static 修饰后,开辟了一块静态存储区域,a没销毁,直接使用值,相当于a=1没用了。

static修饰局部变量的时候,出了作用域不销毁,本质上,static修饰局部变量的时候改变了存储位置!

局部变量是放在栈区的,静态变量是生命周期变长,和程序的生命周期一样长。

②修饰全局变量

static 修饰全局变量的时候,这个全局变量的外部链接属性就变成了内部链接属性,其他源文件(.c)就不能再使用到这个全局变量。

③修饰函数

函数是具有外部链接属性

一个函数本来具有外部连接属性,但是被static修饰的时候,外部链接属性变成了内部链接属性,其他源文件(.c)就无法使用了。

④其他:register 寄存器

存储设备:寄存器(集成带CPU(中央处理器)上) 由下往上 空间小 速度快

                  高速缓存

                  内存  8/16G 

                  硬盘                                  空间大,造价低

九、define 定义宏和常量

宏常量的定义:#define  add(x,y)(x+y)    //宏体

                                       宏名  宏的参数,参数无类型

十、vs code的 .h和.c 区别

.h头文件 函数的声明,类型的声明,头文件的包含

.c源文件 函数实现

十一、指针

1、内存

①、把内存分成一个个小单元

②、根据地址来找。

int 表示向内存申请四个字节,一个字节为八位,就是32个比特位

内存是倒着往回看地址!

!!!指针变量就是用来存放地址的,慢慢理解,不要一口起吃个胖子!——>至自己

口头上的指针指的是指针变量!

指针变量分为全局指针变量和局部指针变量

2、指针变量的大小

!!!不管是什么类型的指针变量,都是在创建指针变量,指针变量是用来存放地址的(一直存存放指针型的变量),指针变量的大小取决于一个地址存放的时候需要多大空间。

32位机器上的地址:32bit位——4byte ,所以指针变量的大小是4个字节。

64位机器上的地址:64bit位——8byte ,   所以指针变量的大小是8个字节。

3、多个变量定义的区别

十二、结构体

1、结构体是把单一类型整合成结构体

比如书包括数名,作者,书名号等等。

2、   结构体类型定义

结构体定义相当于整型类型,是一样的。

①、 打印内容的写法:结构体对象.成员名

 ②、打印内容的写法:结构体指针变量->成员名

十三、结尾Ending:

1、心理是很强大的事情,请不要给自己设限!!!

对我自己来说,学不下去的时候就去放空,听音乐,调整心态,一定要好好学习!

2、空杯心态,耐得住寂寞,坚持学习并且输出(写博客)  踏踏实实

3、学一遍要认真学习,fighting!!!

4、博客是对自己知识的总结,是记录学习的一个过程,说明是愿意分享的人。

5、挤时间学习:欲戴王冠,必承其重。把时间用在刀刃上,看有没有把时间用在刀刃上!

6、拒绝伸手党,遇到问题,尝试自己解决!先自己解决自己解决自己解决,不懂就是问,不耻下问!!!

7、学好编程,不仅仅是学C语言

还有计算机语言,算法和数据结构,操作系统,计算机网络,项目实战。

8、不要跟别人的步伐,自己学的什么样只有自己心里最清楚。学任何事情,任何东西要按照自己的节奏来,慢慢学,不要急,日积月累总会成功,坚定自己的信念!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值