夺取高薪之路

系列文章目录

第一章:Linux初体验

第二章:c语言

前言

干货较多,建议认真观看。


提示:以下是本篇文章正文内容,下面案例可供参考

一、Linux 初体验

一.Linux的优点:

1)开放性;

2)完全免费;

3)多用户;

4)多任务;

5)良好的用户界面;

6)设备的独立性;(树莓派,小熊派,55P6818,RK3399)

7)提供了丰富的网络功能;

8)良好的可以移植性;

二.文件类型

三.Linux常用命令

1.命令使用技巧

~ :表示家目录

/ :表示根目录

./ : 当前目录

../ : 上一级目录

双击tab键 :自动补全内容(在切换长路径时,很好用),如果没有提示则路径错误

Ctrl + shift +加号 :终端界面变大

Ctrl + 减号 :终端界面变小

按向上的箭头 :调出上一次输入的命令(可以多次使用,调出更早一次的命令)

Ctrl +alt + t : 打开终端

 ls / + 按两次tab 键 : 列出 /(根目录)中的所有目录(文件)

 echo +  “输入内容”+ >>   +  目标文件名   写入文件内容

  cat +文件名   查看文件内容

2.终端介绍

3.普通用户切为换超级用户

4.超级用户切换为普通用户

5.ls    列出目录里面的内容

  •   ls /    列出根目录里面的内容, 注意:命令与路径之间要空格

6. ls -a    列出目录信息,包含隐藏文件

     隐藏文件的特点:一般是系统或软件比较重要的文件,但是又不常用,可以设置为隐藏文件

7.ls -l    详细列出目录或这文件信息

8.chmod 修改文件权限

注意:

用户,前面3个字符为一组相加及为对应的用户对文件的权限 rwx

用户组,中间3个字符为一组相加及为对应的用户对文件的权限 r-x

其它用户,末尾3个字符为一组相加及为对应的用户对文件的权限 r--

9.cd 进入某个目录

10.touch  创建文件

11.  rm 删除文件

12.mkdir 创建目录

13.rm 删除目录

14.cp 复制文件(拷贝)

15.cp -r复制目录(拷贝)记得 + -r

16.mv 移动  不用加 -r

17.pwd  显示文件的绝对路径

18.gcc   某.c文件 -o a  

    ./a

运行某个文件里的代码

19.ls --help 查看帮助

20.man 手册的使用

 注意:

蓝色标体为目录,白色为文件

/mnt/hgfs/    第一个斜杠表示根目录,第二个斜杠表示目录与目录之间的分隔符

二、c语言

1.c语言程序设计入门

1.c语言大纲

1).C语言入口main()、数据类型、变量、赋值

2).ascii码、表达式、运算符(位运算符)

3).分支流、控制流

4).数组、一维数组、二维数组、指针数组、函数指针、字符串数组 字符数组

5).指针、一级指针、二级指针、野指针、空指针

6).函数的定义、调用、声明、静态函数、字符串函数,内联函数、递归函数

7).内存管理,作用域,存储期

8).结构体、枚举、共用体

9).头文件、工程管理文件

2.程序的基本结构

2.1头文件 (#include <stdio.h>)

1).c语言程序中,任何字符(包括变量和函数)的使用,都是需要提前声明的。

2).如果程序用到了系统库函数,那么就需要包含相应的系统头文件进行声明。

声明

  • 概念:对源文件外定义的某个符号进行描述的过程,称为声明

  • 作用:经过声明的符号,编译器才能正确识别和编译,否则编译器不认识,无法判定语法错误

  • 符号:变量、函数等。

2.2主函数

1).主函数是必须要有的,每一个语言程序都有main函数,哪怕是空的。

2).主函数的名字是固定的,叫main,这个函数名不可被挪作他用。

3).主函数是程序的入口,也就是程序开始运行的地方。

4).主函数分解如下:

// int:返回值类型,代表主函数最终的执行结果是一个整型数据
// main(void):mian是函数名,这个名字不能被挪作他用
//                void是函数参数列表,可以省略
int main(void)
{
    
}

在Linux环境下,主函数main根据程序最终是否需要接收外部命令行参数,实际有两个版本:

// 不能接收外部命令行参数的版本
int main()
{
    ...
}
// 接收外部命令行参数的版本
int main(int argc, char **argv)
{
    ...
}

2.3printf函数

功能是:向终端输出一段指定格式的数据。

// 向终端输出一段字符串
printf("hello world!\n");

1)格式控制输出符

概念:函数printf被称为格式化IO函数,因为它事按照指定格式来操作数据的。以常见的整数,浮点数和字符串为例

% d :输出十进制整数

%#o : 输出八进制整数

%#x : 输出十六进制整数

%c : 输出字符

%s : 输出字符串(字符串: 用 " "括起来,中英均可)

%f : 输出浮点数(单精度浮点数 )

%lf : 输出浮点数(双精度浮点数 )

%p : 输出地址("%p","abc")输出"abc"地址

%u :  输出无符号整数

%hd : 字节数减半

2.4return语句

int main()
{
    ... ...
    //  一般而言,函数正常退出返回0,非正常退出返回非0
    return 0;
}

注意,main函数的返回值是给上一级进程(运行中的程序)的,因此理论上讲在当前的单进程程序中,main函数的返回值究竟是多少都无所谓,因为根本没有去使用这个返回值,除非在多进程程序中,进程间才需要使用main函数的返回值来传递信息。

3.man帮助手册

// 查询存在于多个分册的条目:
// 先使用-f来查看有哪些分册包含了条目
gec@ubuntu:~$ man -f printf

printf (1)           - format and print data
printf (3posix)      - print formatted output
// 根据需要,指定查询某一册帮助分册
gec@ubuntu:~$ man 3posix printf

注意: 按 q退出

4.代码风格规范

参考《华为编程规范和实例》

5.vi编辑器的使用

特点:

1).vi的改进版本叫vim(vi’s improved version),vi和vim是同一个软件。

2).vi其初衷是解放鼠标,只用键盘高效操作所有的编辑任务。

3).没有菜单,操作分成编辑模式和命令模式,除了编辑之外的操作都在命令模式下进行

模式切换:

1).从命令模式 切换到 编辑模式:按i、o、a、I、O、A均可

2).从编辑模式 切换到 命令模式:按Esc。

命令:

命令效果
:w保存
:wq保存并退出
:q!放弃保存并退出
i在当前光标处插入文本,进入编辑模式
I在当前光标所在行的开头处插入文本,进入编辑模式
a在当前光标的下一个字符处插入文本,进入编辑模式
A在当前光标所在行的末尾处插入文本,进入编辑模式
o在当前光标的下一行插入文本,进入编辑模式
O在当前光标的上一行插入文本,进入编辑模式
yy复制光标所在行
3yy复制光标所在行及以下3行
dd剪切光标所在行
3dd剪切光标所在行及以下3行
x剪切光标所在的字符
r替换当前字符
p粘贴
u撤销
ctrl+r恢复撤销
k光标向上移动
j光标向下移动
h光标向左移动
l光标向右移动(小写的L)

2.数据类型

1.数据类型分类:    整型(短整型,整型,长整型,长长整型,无符号短整型,无符号整型,无符号长整形,无符号长长整型)

什么是数据?有用的信息称为数据

数据如何存储在内存

1). 确认数据的类型  10 3.14 'a' '1' "10" "100" 'a'
2). 根据数据的类型在c语言中确认分配的数据类型 int char float double
3). 确认分配的空间是否满足数据的存放 char:1字节 short 2字节 int 4字节

比特位(bit) :二进制数,cpu计算的基本单位

  • 1字节 = 8位

  • 1个千字节(KB) = 1024字节

  • 1M = 1024KB

  • 1G = 1024M

  • 1T = 1024G

                     32位                      64位

char              1字节                    1字节

int                  4字节                    4字节

short              2字节                    2字节

long                4字节                    8字节

long long         8字节                    8字节

float                 4字节                   4字节

double             8字节                   8字节

long double      12字节                 16字节

格式控制符

  • int 整型:%d

  • unsigned int 无符号整型 : %u

  • short整型:%hd,h代表half,即一半的存储字节

  • long整型:%ld

  • long long整型:%lld

  • 显示不同进制的前缀 : %#o、%#x

2.数据类型的取值范围

1).当编译器以整型输出的时候%d,是以补码还原的方式解读
2).当cpu将数据进行运算的时候,直接以内存中存放的方式来运行,也就是以补码    的方式参与运算
3).%u输出的时候,值区域范围:0-4294967295(有符号转为无符号的时候)
4).%hhu方式打印,值域范围:0-255

3.进制转换

4.浮点型

分类:

单精度浮点型(float),典型尺寸是4字节

双精度浮点型(double),典型尺寸是8字节

长双精度浮点型(long double),典型尺寸是16字节

占用内存越多,能表达的精度越高

float f1;//单精度
double f2;//双精度
long double f3;//长双精度

5.字符

字符本质上就是一个单字节的整型

char ch1 = 'a'; // 'a'是字符常量,代表字母a
char ch2 = '\n'; // '\n'是不可见字符常量,代表回车

6.转义字符

'\ddd' ddd 表示八进制数,打印出来的是该数字对应的ascii码
格式为'\'后面又三个数,每个数的范围在  0 - 7
printf("%c\n",'\102');// 八进制

'\xhh'hh 表示十六进制 打印出来的是该数字对应的ascii码
printf("%c\n",'\x41');//A

demo :

#include <stdio.h>

int main(int argc, char const *argv[])
{
    printf("efg\a");
    printf("abcd\b");
    printf("efg\n");
    // 转义字符---八进制'\xxx',注意x的大小为0-7
    // 注意转义字符的范围一定是127以内,不要超出char类型范围
    int a = '\102';
    printf("%o,%d,%c\n",a,a,a);
    //printf("%o\n",'\109');// 不合法,单个字符是0-7
    
    // 转义字符---十六进制'\xhh',注意x的大小为0-F
    int b = '\x4f';
    printf("%x,%d,%c",b,b,b);
    return 0;
}
7.字符串

// 字符串的定义方式有两种:指针和数组
char *s1 = "abcd"; // 使用字符指针来表示字符串
char s2[]= "abcd"; // 使用字符数组来表示字符串

// 注意,使用数组来定义字符串时,方括号[]里面的数字可以省略
// 不省略也可以,但必须必字符串实际占用的内存字节数要大,比如:
char s3[] = "apple";

任何字符串都以一个'\0'作为结束标记

8.布尔类型数据

概念:布尔型数据只有真、假两种取值,非零为真,零为假。

语法: bool a = 1; // 逻辑真,此处1可以取其他任何非零数值
            bool b = 0; // 逻辑假 c

注意:

  1. 逻辑真除了 1 之外,其他任何非零数值都表示逻辑真,等价于 1。

  2. 使用布尔型 bool 定义变量时需要包含系统头文件 stdbool.h。

demo:

#include <stdio.h>
#include <stdbool.h>

int main(int argc, char const *argv[])
{
    // 在c语言,非0为真,0为假
    // bool为布尔类型,一般只有两种状态 true:真  false:假
    // 作用是作为标志位,增加代码的可读性
    bool flage = true;
    bool flage1 = false;
    printf("%d\n",flage1);
    enum color{yellow=10,gree,blue,red};
    printf("%d",yellow);
    printf("%d",red);
    return 0;
}

enum 为枚举函数

9.常量与变量

举例:

int a = 100;    // a是变量,而100是常量
float f = 3.14; // f是变量,而3.14是常量
char s[] = "abcd"; // s是变量,"abcd"是常量

常量举例说明类型
100整型int
100L长整型long
100LL长长整型long long
100ULL无符号长长整型unsigned long long
3.14双精度浮点型double
3.14L长双精度浮点型long double
‘a’字符型char
“abcd”字符指针(字符串)char *

10.标准输入

scanf(); // 格式化输入函数

注意:

1).scanf() 与 printf() 不同,scanf() 的格式控制串不可乱写,尤其是结尾处的 \n

2).用户必须完全按照 scanf() 中描述的输入格式控制串来输入数据,否则将出错。

3).scanf() 的返回值,代表成功从键盘读取的数据的个数

4).无法匹配 scanf() 指定格式的数据,将被遗留在输入缓冲区中,不会消失(getchar可以清空缓冲区)

demo:

 


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值