- 博客(20)
- 收藏
- 关注
原创 vim快捷键
切换换到编辑模式:按 i 进入插入模式,从光标当前位置开始输入;按 a 进入插入模式,从目前光标所在位置的下一个位置开始输入;按 o 进入插入模式,在插入新的一行,从行首开始输入。按 O 进入插入模式,在当前行的上面插入新的一行,从行首开始输入。切换到命令行模式:ESC移动光标:h 、 j 、 k 、 l ,分别控制光标左、下、上、右移一格。按 gg :移动到文章的开头。按 G :移动到文章的最后。按 $ :移动到光标所在行的"行尾"。按 ^ :移动到光标所在
2022-01-22 14:16:29
510
原创 Ubuntu18.04无网络
虚拟网络已经配置好的情况下,桌面右上角没有网络图标,ping命令提示:Name or service not known。解决办法:1.虚拟机的网络服务需要开启此电脑右键->管理->服务和应用程序。2.修改配置文件sudo gedit /etc/NetworkManager/NetworkManager.conf将managed后的false改成ture,保存。sudo service network-manager stopsudo rm /var/lib/.
2022-01-19 12:22:55
669
原创 二维数组和数组指针
二维数组:int arr[3][4];每个元素arr[0],arr[1],arr[2]等价于一维数组名,所以也是子数组的首地址。 二维数组名arr是首地址,可以理解为是指向第一个子数组的数组指针,如int (*p)[4] = arr。所以对“指针”arr取内容*arr就是第一个子数组名。区别是sizeof(arr)等于整个二维数组的存储空间大小,可见数组名代表了整个数组;而sizeof(p)只是等于一个指针变量的存储空间大小。 二维数组名是地址,+1偏移一个子数组的大小,如int arr[3][
2022-01-14 00:36:22
594
原创 函数指针、函数指针数组、返回值为函数指针的函数
函数指针指向函数的指针,函数名本身就是地址,是函数代码在存储空间中的起始地址。int getMax(int a,int b){ return a>b?a:b; }int (*p)(int, int) = getMax;//也可以是&getMax,编译器显示类型是一样的(*p)(1,2);//p(1,2)也是可以的值得一提是代码中getMax和&getMax类型一样,都是int (*)(int,int])函数指针。指针数组数组...
2022-01-13 00:28:53
420
原创 c语言常量指针和指针常量
一、常量指针:指向常量的指针。int const *p(const int *p); p = &a;p可以改变指向,可以指向常量和非常量,但不能用*p修改指向变量的值。二、指针常量:常量,存放的地址不能改变。int *const p = &a;必须初始化,不能改变指向。1)指向非常量的指针常量:int *const p = &a;只能指向非常量(因为int a,&a类型是int *,普通指针),不能指向常量(因为const int a,&a类
2022-01-09 23:02:18
3142
原创 树莓派使用串口登陆和SSH登陆
一、串口 默认情况,树莓派的串口和蓝牙连接。想办法断开蓝牙连接,把串口用来数据通信https://blog.youkuaiyun.com/syjsxxjy/article/details/80774262dtoverlay=pi3-miniuart-bt dwc_otg.lpm_enable=0 console=tty1 console=serial0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.rep...
2022-01-08 00:37:01
1146
原创 C语言冒泡排序和选择排序
一、冒泡排序法假设从小到大排序,例一数组:int arr[] = {2,1,34,5}。arr[0]元素先跟相邻的arr[1]元素相比,如果比它大则交换两个元素,大的数值放在后面。然后比较arr[1]和arr[2]的大小,以此类推,直至第n-2个和第n-1个元素(n为数组大小)进行比较为止。此时找出了数组中最大的元素放在了最后一位,完成第一次冒泡排序。第二次排序对数组的前n-1个元素进行冒泡排序,第三次排序对数组的前n-2个元素进行冒泡排序......以此类推,直至数组前两个元素比较完为止。
2022-01-05 11:13:01
7185
2
原创 修改cmd窗口为utf-8编码格式
win键+R,输入regedit,确定。 按顺序找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor。 点击右键-新建,选择“字符串值”。 命名为“autorun”, 点击右击修改,数值数据填写“chcp 65001”,确定。这时候每次打开cmd都是UTF-8编码。ps:使用命令chcp 65001 >nul 2>nul可以隐藏打印的信息。...
2022-01-03 14:24:16
238
原创 树莓派——学习记录
树莓派登录一、串口 默认情况,树莓派的串口和蓝牙连接。想办法断开蓝牙连接,把串口用来数据通信https://blog.youkuaiyun.com/syjsxxjy/article/details/80774262dtoverlay=pi3-miniuart-bt dwc_otg.lpm_enable=0 console=tty1 console=serial0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=dead...
2021-02-26 16:10:43
694
原创 Linux之网络编程
地址:ip+端口号数据:协议(数据格式)socket:tcp:面向连接udp:面向报文,不可靠,但数据量大TCP/UDP对比1.TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接2.TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付3.TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的。
2021-02-25 14:34:49
152
原创 Linux之信号量
本质上是一个计数器,用于协调多个进程对共享数据对象的读/写。保证共享资源在一个时刻只有一个进程独享。可以用来保证两个或多个关键代码段不被并发调用。
2021-02-25 14:34:01
473
原创 Linux之信号
信号#include <signal.h>#include <stdio.h>typedef void (*sighandler_t)(int);//定义sighandler_t为void *(int)无返回值的函数指针类型//sighandler_t signal(int signum, sighandler_t handler);void handler0(int signum){ printf("signum is:%d\n",sig.
2021-02-25 14:33:45
593
原创 Linux之线程
和多进程相比,多线程是一种比较节省资源的多任务操作方式。启动一个新的进程必须分配给它独立的地址空间,每个进程都有自己的堆栈段和数据段,系统开销比较高,进行数据的传递只能通过进行间通信的方式进行。在同一个进程中,可以运行多个线程,运行于同一个进程中的多个线程,它们彼此之间使用相同的地址空间,共享全局变量和对象,启动一个线程所消耗的资源比启动一个进程所消耗的资源要少。.........
2021-02-25 14:33:05
2246
原创 Linux之进程(二)进程间通信
进程间通信(IPC,InterProcess Communication)参考博客:https://blog.youkuaiyun.com/tangtang_yue/article/details/78296620?是指在不同进程之间传播或交换信息。IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。其中 Socket和Streams支持不同主机上的两个进程IPC。一、管道(无名管道)相当于水管,从上端流入,下端流出,内容被读取后管道就是空...
2021-02-25 14:26:27
556
1
原创 Linux之进程(一)
目录什么是进程如何查看进程进程标识符vfork与fork的区别进程的退出父进程等待子进程退出并收集退出状态exec族函数system()函数popen()函数什么是进程进程是正在运行的程序的实例。如何查看进程ps命令:ubuntu下,ps -aux|grep +关键字 top命令进程标识符进程控制符(PID),Process Identifier。也常被称为进程标识符。它是各进程的标识,程序一运行系统就会自动分配给进程一个独一无二的PID.
2021-02-25 14:26:14
326
原创 Linux文件I/O编程(二)
目录实现cp指令修改文件某字段内容写一个整数到文件写结构体数组到文件标准C库文件I/O函数标准C库函数(fopen、fwrite、fread、fseek、fclose)实现cp指令文件名通过参数传入,打开文件 —>读取内容到缓冲区—>缓冲区内容写入目标文件。#include <stdio.h>#include <string.h>#include <stdlib.h>#include <sys/types.h.
2020-10-18 14:16:58
533
原创 Linux文件I/O编程(一)
目录打开文件(open)创建文件(creat)文件写入(write)文件读取(read)文件光标移动(lseek)access判断文件是否存在文件操作原理打开文件(open)作用:进程中打开一个文件返回一个文件描述符供后续read、write使用。int open(const char *pathname, int flags);int open(const char *pathname, int flags, mode_t mode);参数:pathna
2020-07-16 22:29:52
437
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人