C语言笔记总结

linux命令

常用命令

  1. 打开终端 ctrl+alt+T, ctrl+shift+(+)放大字体 ctrl+(-) 缩小字体
    ctrl+shift+n 打开当前文件所在目录的终端
    2.pwd 查看当前路径
  2. ls 查看当前路径下有哪些文件和文件夹
    4.自动补全键(Tab键)
    5.查看文本文档
    cat 适合查看比较短的文档
    more 适合查看比较长的文档
    按Enter向下走一行
    按Space向下走一页
    按b向上走一页
    按Q退出
  3. 创建文件夹 mkdir
    7.1. 创建文件 touch 1.txt

vim命令

                                 vim  1.txt
      :                                                              i

末行模式 < --------------------------------命令模式(默认) ----------------------------->插入模式
wq(保存退出) 3yy(复制) < -----------------Esc
w(只保存不退出) p(粘贴)
q(只退出不保存) 3dd(删除)

C基础内容

关键字

在这里插入图片描述

基本数据类型

在这里插入图片描述

常量

在这里插入图片描述

变量和数据类型转换

在这里插入图片描述

在这里插入图片描述

运算符

在这里插入图片描述

运算符优先级

在这里插入图片描述

三大结构

在这里插入图片描述
在这里插入图片描述

数组

整型数组

在这里插入图片描述

冒泡排序

从左往右,两两依次比较,如果前一个数比后一个数大,就交换位置,反之,不变
在这里插入图片描述

字符数组

1.字符数组:保存一组char类型的数据
2.存储类型 数据类型 数组名[元素的个数];
3.数据类型:数组中元素的数据类型
定义: char str[10];//定义了一个字符数组str,该数组中可以存放10个char类型的字符
数组所占的内存空间== sizeof(char)*10 = 10
数组的数据类型:char [10];//去掉数组名
4.字符数组的本质就是字符串

字符串输入输出函数

在这里插入图片描述

字符串处理函数

在这里插入图片描述

二维数组

在这里插入图片描述

函数

1.概念:具有独立功能的模块
2.函数的优点:
a、提高代码的复用率
b、让程序变得模块化、简洁
3.调用函数要引入头文件
函数名(参数);
返回值:int(字符串的实际长度)
注意:参数的个数,以及参数的类型;返回值的类型(是否需要接收返回值)

自定义函数

在这里插入图片描述

指针

一级指针

二级指针

1、概念:保存一级指针的地址 //指针指针
2、定义
存储类型 数据类型 *指针变量名;
Int * *pp;
数据类型:指针指向的数据类型;(二级指针指向的数据类型:一级指针的数据类型)
(int *)
二级指针的数据类型:int **;
在这里插入图片描述

总结:
1、指针的数据类型,去掉变量名就是数据类型
2、指针指向的数据类型,去掉的一个*和变量名,剩下的就是指针指向的数据类型
3、指针所能访问到的内存空间的大小,由指向的数据类型决定

指针的算数运算

1、p+n:p向地址增大的方向移动了n个数据
p实际的变化:p + sizeof(指针指向的数据类型)*n
2、P-n: p向地址见效的方向移动了n个数据
p实际的变化:p - sizeof(指针指向的数据类型)*n
3、P++: p向地址增大的方向移动了一个数据 //改变指针的指向
p = p+sizeof(指针指向的数据类型)
4、P–:p向地址减小的方向移动了一个数据 //改变指针的指向
p = p-sizeof(指针指向的数据类型)
5、p-q:(p和q数据类型必须相同):这两个指针之间相隔的个数
实际的变化:(q-p)/sizeof(指针指向的数据类型)
注意:
1、指针的算数运算只有在连续的内存空间中,才有意义。
2、p是指针变量,以上的算术运算也同样应用于指针常量,但是++,–除外

指针与数组的关系

指针常量和一维数组的关系

在这里插入图片描述
注意:数组名和指针变量的区别:数组名是指针常量::指针常量不可以自加自减!!!

指针变量和一维数组的关系

在这里插入图片描述
在使用指针变量的移动时:一定要注意:指针此时指向了哪里

指针和二维数组的关系

在这里插入图片描述
1、&a、a、&a[0]、a[0]、&a[0][0]的值是一样的,但是表达的含义不一样
2、为什么说a不是int类型?
如果a是int
类型,那么他指向的数据类型应该是int * ,那么a+1,应该移动移动4字节,但是a+1,移动了12字节,移动了一个数组,因此a一定不是int**类型
3、a指向a[0]、a[0]指向a[0][0]

数组指针

  1. 概念
    指向数组的指针 //保存数组的地址
  2. 定义
    存储类型 数据类型 (* 变量名) [元素的个数];
    Int (p)[3];
    //定义了一个指向数组的指针p,指向的这个数组:有3个int类型的元素
    存储类型:auto、static、extern、register
    数组类型:指针指向的数组中的元素数据类型
    P:数组指针的数据类型: int (
    )[3];
    p指向的数据类型:int [3] //去掉变量名和一个*
    p+1:移动sizeof(指向的数据类型) sizeof(int [3])

数组指针和一维数组的关系

在这里插入图片描述
注意:数组指针一般不去操作一维数组。因为p+1,移动一个数组,就会越界,因此数组指针,一般用数组指针去操作二维数组!

数组指针和二维数组的关系

在这里插入图片描述

指针数组

1.概念
元素为指针的数组
2. 定义
存储类型 数据类型 * 变量名[元素的个数];
Int * arr[3];
//相当于定义了一个数组,这个数组种有三个元素,每一个元素都是int *类型
数组中元素的数据类型:int *
在这里插入图片描述

指针数组和二维数组的关系

在这里插入图片描述

const修饰

const修饰变量

变量使用const进行修饰时,不能直接修改变量的值,但是可以通过指针,间接修改a的值

const修饰指针

在这里插入图片描述

main函数传参

//1.表示字符串的个数
Int argc;
//2.保存你传入的每一个字符串的地址
Char * argv[ ];
Int main(int argc, char * argv[])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值