华清远见百度网盘实训笔记

华清远见百度网盘实训笔记_第1张图片

一、Linux

1.windows系统和linux系统的区别:

  1. windows系统和linux系统的区别:

Windows的文件系统用树形结构 ,有分盘C盘、D盘。

linux没有分盘,有目录,比如根目录(‘/’),根目录下的子目录都有其固定作用,文件不能随意存放。例:bin:二进制文件和可执行二进制程序。dev(device服务器):存放设备文件;/home:家目录

/home/farsight:华清远见工作目录,在此写代码

2.基础指令:

.代表当前目录

..代表上一级目录

ls:查看用户当前目录下的所有文件

ls -a:查看用户当前目录下的所有文件(包含隐藏文件夹)

ls -l:显示文件详细信息

pwd:查看用户当前所在路径

cd +目录:进行目录切换

创建文件:touch +文件名

删除指定文件:rm +文件名

复制文件:1.cp +源文件名 + 目标文件名 2.cp +源文件名 + 路径

剪切/移动文件:1.mv +源文件名 + 目标文件名 2.mv +源文件名 + 路径

查看文件内容:cat + 文件名

创建目录:mkdir + 目录名

删除空目录:rmdir +目录名

删除非空目录:rm -r +目录名

华清远见百度网盘实训笔记_第2张图片

华清远见百度网盘实训笔记_第3张图片

权限6 6 4,是八进制

3.vim编辑器:

vim +文件名创建并打开文件

(1)命令行模式(用户进入编辑器的默认工作模式)下的基本操作:

复制代码:nyy+回车:复制光标以及光标以下的n行数据

粘贴:p+回车:粘贴到光标的下一行

剪切:ndd+回车:剪切光标以及光标以下的n行数据

删除:ndd()+回车

撤销上一步操作:u+回车

(2)编辑模式:在命令行模式下输入a、i、o

(3)底行模式:按esc回到命令行模式,在命令行模式下输入冒号:

底行模式下的操作:w:保存;q:退出;wq:保存并退出;q:强制不保存退出

4.gcc编译:

gcc + 文件名:例:gcc test.c(文件名) 编译成功后会在当前目录生成一个名为a.out的二进制可执行程序

5.执行程序:

方法:./ + 可执行的二进制文件名(例:./a.out)

二、C语言

int                ----               整型             ----         4字节        ----  32位

char             ----              字符型          ----         1字节       

 float           ----    单精度浮点型(7到8位小数) ----    4个字节

 double       ----    双精度浮点型           ----         8字节

 long            ----                                    ----        4字节(32bit)/8字节(64bit)

 short           ----                  -                ----         2字节                      

 1.数组:

(1)概念:内存上的一篇连续存储空间,是相同数据的集合

(2)定义:<存储类型><数据类型>数组名[元素个数] 

存储类型(可省略):auto(自动)、register(寄存器)、extern(外部)、static(静态)

例:int a[60];       //定义了一个名为a的数组,最多可以存放60个int 类型的数据

(3)使用:

数组名[元素下标];

元素下标的取值范围:0~n-1,没有a[n]这个元素

a[0]是数组的第一个元素

完全初始化:例:int a[5] = {1,2,3,4,5};

不完全初始化:没有初始化的元素,其值默认为0;

例:int b[5] = {1,2,3};

int c[50]={0};

练习:定义一个整型数组,打印数组中所有元素的值(循环打印)

华清远见百度网盘实训笔记_第4张图片

 华清远见百度网盘实训笔记_第5张图片

 2.字符数组和字符串char a[50];

字符串:由一个字符或者多个字符组成的字符长串,用双引号表示

华清远见百度网盘实训笔记_第6张图片

 华清远见百度网盘实训笔记_第7张图片

华清远见百度网盘实训笔记_第8张图片 华清远见百度网盘实训笔记_第9张图片

 华清远见百度网盘实训笔记_第10张图片

华清远见百度网盘实训笔记_第11张图片 练习:定义一个字符数组,输入一个字符串,计算有效字符长度。

 华清远见百度网盘实训笔记_第12张图片

华清远见百度网盘实训笔记_第13张图片 华清远见百度网盘实训笔记_第14张图片


华清远见百度网盘实训笔记_第15张图片

3

.字符串函数

char a[50] = "hello";

strlen()   ---字符串长度函数:计算字符串长度----用法:strlen(a);

strcpy()  --字符串拷贝函数:将第二个字符串内容拷贝到第一个字符串中---用法:strcpy(str1,str2);

strcmp() --字符串比较函数:比较两个字符串大小,通常用于判断两个字符串是否相同--用法:strcmp(str1,str2);

比较方法:根据ACSII码值

返回值:

-1:str1

0:str1==str2

1:str1>str2

练习:完成登录小程序

思路:

华清远见百度网盘实训笔记_第16张图片

 账号:333333密码:1111

 12 #include 
 13 #include 
 14 #include 
 15 #include 
 16 int main()
 17 {
 18         char src_usernum[10]={"333333"};
 19         char src_pass[10]={"1111"};
 20         char my_usernum[10]={0};
 21         char my_pass[10]={0};
 22         while(1){
 23                 //输入帐号
 24                 printf("please input your num\n");
 25                 scanf("%s",my_usernum);
 26                 //比较帐号
 27                         if(!strcmp(src_usernum,my_usernum))
 28                         {//帐号正确,输入密码
 29                                 printf("current  num,Please input password\n");
 30                                 while(1)
 31                                 {//输入密码
 32                                 scanf("%s",my_pass);
 33                                 //比较密码
 34                                         if(!strcmp(src_pass,my_pass))
 35                                         {
 36                                         //密码正确,登录成功
 37                                         printf("the login is successful!\n");
 38                                         return 0;
 39                                         }
 40                                         else{ //密码错误,登录失败
 41                                         printf("the login failed! Please input password again\n");}
 42                                 }
 43                         }else{
 44                         //帐号错误,登录失败
 45                                 printf("wrong num\n");}
 46         }
 47         return 0;
 48 }

测试: 

华清远见百度网盘实训笔记_第17张图片

(1)概念:在计算机内存中由一个一个的字节单元组成,每一个字节单元都有一个编号,这个编号就叫地址,也叫指针

(2)&和*(互为逆运算)

&:获取指定内容的地址

        例:int a=10;

               &a  :获取a的地址

*:获取对应地址的内容

        例:int a=10;

              *(&a) == a == 10;

(3)指针变量

        <存储类型><数据类型> *指针变量名

        数据类型:跟指针指向内容的数据类型一致        

        int a = 10;

        int* p = &a;    (*号的作用只是声明指针p)

        p = &a;   ===》*p == a;

(4)指针运算

        int a = 10;

        int *p = &a;   //&a == 0x2000

        p+n  ----->指针p向高地址位偏移n个元素(指针指向的内容)的字节数大小

        p-n   ----->指针p向低地址位偏移n个元素(指针指向的内容)的字节数大小

(5)指针和数组

        int a[5] = {1,2,3,4,5};

        int *p = a;    // a == &a[0];

目录

一、Linux

1.windows系统和linux系统的区别:

2.基础指令:

3.vim编辑器:

(1)命令行模式(用户进入编辑器的默认工作模式)下的基本操作:

(2)编辑模式:在命令行模式下输入a、i、o

(3)底行模式:按esc回到命令行模式,在命令行模式下输入冒号:

二、C语言

 1.数组:

(1)概念:内存上的一篇连续存储空间,是相同数据的集合

(2)定义:<存储类型><数据类型>数组名[元素个数] 

(3)使用:

 2.字符数组和字符串char a[50];

3

.字符串函数

(1)概念:在计算机内存中由一个一个的字节单元组成,每一个字节单元都有一个编号,这个编号就叫地址,也叫指针

(2)&和*(互为逆运算)

(3)指针变量

(4)指针运算

(5)指针和数组

        作业:在不使用字符串函数的情况下,完成自己的strcpy函数(指针实现)


        p == &a[0];

        p+1 == &a[1];

        p+2 == &a[2];

 拷贝函数: 

 华清远见百度网盘实训笔记_第18张图片

        作业:在不使用字符串函数的情况下,完成自己的strcpy函数(指针实现)

我写的mei'you'yong'an'shu是将str1复制给str2,str1初始化为hello,str2只定义

第一种方法:for循环

 12 #include 
 13 #include 
 14 #include 
 15 #include 
 16 int main()
 17 {
 18         char str1[50] = {"hello"};
 19         char str2[50];
 20         char *p1=str1;
 21         char *p2=str2;
 22 //      int i;
 23         /*for(i=0;str1[i]!='\0';i++,p1++,p2++)
 24         {
 25                 *p2=*p1;
 26         }*/
 27         while (*p1!='\0')
 28           {
 29                 *p2=*p1;
 30                 p1++;
 31                 p2++;
 32           }
 33                 *p2 = '\0';
 34         printf("%s\n",str2);
 35 }
~       

运行结果:

第二种方法:while循环

 12 #include 
 13 #include 
 14 #include 
 15 #include 
 16 int main()
 17 {
 18         char str1[50] = {"hello"};
 19         char str2[50];
 20         char *p1=str1;
 21         char *p2=str2;
 22         int i;
 23         for(i=0;str1[i]!='\0';i++,p1++,p2++)
 24         {
 25                 *p2=*p1;
 26         }
 27         /*while (*p1!='\0')
 28           {
 29                 *p2=*p1;
 30                 p1++;
 31                 p2++;
 32           }*/
 33                 *p2 = '\0';
 34         printf("%s\n",str2);
 35 }
~                

运行结果: 

 

华清远见百度网盘实训笔记_第19张图片

你可能感兴趣的:(嵌入式开发,c语言,后端,linux,运维,vim)