深入奇妙的指针
第三周学习笔记
(字符数组,指针与数组,动态数组,简单的函数,搭建一个虚拟机)
一、典型题
冒泡排序
应用冒泡排序:成绩评定
二、数组 指针 函数
1.利用函数gets puts 直接输入输出一段字符
2.利用函数gets puts 直接输入输出一段字符字符串处理函数
3.字符串处理函数1.strcat 字符串连接函数
标准格式: strcat(字符数组1,字符串2)
此处用到的是: strcat(字符数组1,字符数组2)
此处涉及一个概念;存有’0’的字符数组也是字符串
2.stelrn 字符串长度函数
返回字符串的长度
不包括’0’
此处输出str1[30]的长度是33
3.1.strcat 字符串连接函数
标准格式: strcat(字符数组1,字符串2)
此处用到的是: strcat(字符数组1,字符数组2)
此处涉及一个概念;存有’0’的字符数组也是字符串
3.2.strcmp 字符串比较函数
格式:strcmp(字符串1,字符串2)
对字符串1和字符串2中的字符从左到右逐个开始按ASCII码值比较,知道遇到字符值不相等或者遇到字符串结束符’0’时结束
若两字符串相等,则其返回值为0
若两个字符串不相等,当字符串1的字符较大,则函数返回正整数;
当字符串2的字符较大,则函数返回负整数。
注:字符串的比较不能用关系运算符(<,>,<=,>=,==)
3.3.stelrn 字符串长度函数
返回字符串的长度
不包括’0’
此处输出str1[30]的长度是33
3.4.strcpy 字符串复制函数
格式:strcpy(字符数组1,字符串2)
注:字符数组1的空间要足够大
4.用字符数组名和字符指针变量两种方法整体输入与输出字符串在用一个指针变量指向一个字符串时遇到警告: [Warning] deprecated conversion from string constant to ‘char*’
修改方法: char *nstr=“such as higher mathematics”;
const char *nstr=“such as higher mathematics”;
const:常量修饰符,意思就是其所修饰的对象为常量(immutable)
const 还有一个作用就是用于修饰常量静态字符串,还可以修饰数组
再此处的作用就是将*nstr变为常量,即可消除错误
在输出语句中,此处一个新的用法就是用字符指针常量直接处理字符串常量,用指向字符串常量的字符型指针变量整体输出该字符串常量
整体输入带空格的字符串的两种方法:
1.gets(数组名);
2.gets§;//p=a[];
注:指针变量一定要赋值,否则会出现:
输入p并不能输出,使用了未初始化的局部变量“p”
5.地址越界问题:引用数组元素时,切忌下标越界,否则可能输出乱码
6.问题:在二维数组中,用指向数组元素和指向分数组的指针变量,按行输出二维数组中各元素的值
在此处:循环输出1,2,3,4,5
与原意向佐 待解决
7.用动态数组事先数组的创建和使用
动态数组:
1.分配内存空间函数 malloc
格式:(类型说明符) malloc (unsigned int size)
表示:在内存的动态存储区中分配了一块长度为“size”字节的连续区域
函数返回值:若成功:返回开辟的空间的首地址;失败:返回空指针NULL
2.分配内存空间函数 calloc
格式:(类型说明符*) calloc (n,size);
表示:在动态存储区中分配n个长度为“size”的连续区域
函数返回值:若成功:返回开辟的空间的首地址;失败:返回空指针NULL
3.释放内存空间函数 free
形式:free(void*pte);
表示:释放ptr所指向的一块内存空间
被释放的空间应该是malloc和calloc函数所分配的空间
区分:exit(0),exit(1),return
1.exit(1).
异常退出,在退出前可给出提示信息,或在调试程序中查看出错原因
2.exit(0).
正常退出,并将参数0作为程序的返回值
3.return
返回函数调用,若返回的是main函数,则退出程序
注:exit是系统调用级别为一个函数,表示一个进程
对比:动态数组与静态数组
静态数组:长度是定义好的,不可改变;创建方便;使用完无需释放;引用简单;
动态数组:长度随程序需要重新指定大小;创建麻烦;使用完需要释放;灵活
三、创建一个虚拟机
1.需要下载的软件:VMware linux系统
可以直接下载到桌面,会比较好找
2.重启安装VMware
3.此时打开VMware会出现以下页面
选择创建一个新的虚拟机
新手建议选择典型,可以很简单的创建一个虚拟机,此处用自定义演示
选择虚拟机所占的内存大小及一些配置
映像文件即开始是下载的Linux系统,选择稍后安装操作系统
虚拟机命名:尽量用英文
虚拟机内存设置
接下几部可以自己设定
点击完成 虚拟机就开始啦~