C++的学习笔记(第四章:数组及自定义类型)

来源:互联网 发布:ubuntu win7 系统时间 编辑:程序博客网 时间:2024/06/04 22:52

目录

数组

枚举类型

结构类型

联合类型


正文

一。数组:定义数组:注意点:数组对sizeof的使用;还有对传递后的数组的使用。

                                           注意区分数组和字符串。【主要有两点区别 1:字符数组的结尾必须搞个'\0'(ascall码值为0);2.数组可以实现定位这个功能】

           数组的初始化:a:初始化的未赋值的值的情况 b:数组的上限。

           字符数组的定义:A:注意字符串有两种表现方式:一是字符数组(又有两种情况,一是字符数组,二是数组指针),二是string类的使用。

                                       B: 字符数组的结尾必须以‘0/‘结尾,自定义分别赋值的话,必须要自己给值,如果想要从中间截断必须直接令它为0。

           多维数组:A:有一种给所有值为0的方法;

                             B.如果不给数组的数据的话,只能空第一个(想一下就知道为什么了)。

                             C.你猜猜多维数组是怎么存放在内存里面的...(是按顺序的啦,手动滑稽,对了给一个公式 N!+(N-1)!+··· 记住N是代表维度的)

           数组的赋值(A:遍历;

                                B:用”strcpy[已经被淘汰,换为strcpy_s 新的函数,是在中间加长度的(记住字符串长度+1的)](str1,st2或” “){上式为函数语法}或者strncpy函数【加一个N)

           数组的输出(遍历)对了,只有字符的数组名输出是直接输出数组内的元素


二。枚举类型:(枚举类型的处理的目的是为了将某些有范围的数给一个范围)

枚举类型的定义:enum weekday{  }依次往里输代表就好,记得数据的连接是需要依靠上一个数的。

枚举类型的赋值:day=mon/(weekday)0[后一个是因为weekday现在就相当于int一样]


三。结构类型   (结构类型是用来将不同类型的数据存放为一个整体,而且它和类不一样,比类低级一点,只能储存数据,我们可以看到对象化处理的影子,或许说,类就是在结构类型和函数的基础上诞生的,对象化的思路更有利于处理)

结构类型的定义

结构类型的初始化

结构类型的使用

结构数组的使用(新的技能,目测这个玩意可以定义相同类型的N多的东西)

                            讲一下这个玩意的语法吧


四。联合类型(可以用来省内存?炫技?{貌似乱入了什么东西}避免重用?)

这个玩意吧,貌似很有用处,不过目前没有体会到,完了在补好处

联合类型的定义  有一种调用叫做无名调用

联合类型的调用

联合类型的特点 :a:只能调用其中之一

                              b:成员的内存是最大的那一个

                              c:不能对联合变量名赋值和初始化,也不能做函数的参数和返回值


应用

A:字符串或者数组长度的总结

sizeof对数组的求法:记得是求所占的实际空间。而且还有一个数组退化为指针的注意点,记住有时候(逐个赋值,结尾不给0时不会)会+'\0';

         对string字符串的求法:(从网上摘取)不同的字符所占的字节是不同的。
  ASCII码:
  一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值0,最大值255。如一个ASCII码就是一个字节。
  UTF-8编码:
  一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。
  Unicode编码:
  一个英文等于两个字节,一个中文(含繁体)等于两个字节。
  符号:
  英文标点占一个字节,中文标点占两个字节。举例:英文句号“.”占1个字节的大小,中文句号“。”占2个字节的大小。

         对结构类型的处理:结构类型的内存必须是4的整数倍,所以必须补4字节

         对联合类型的处理:联合类型的最大值

         对枚举类型的求法:按照int型的去算

strlen 求的是实际的长度,所以遇到0就会结尾,而且不算0;

str.length 可以求字符串的长度,不带0


B:冒泡排序(这个玩意可以用来排序的,是拥有好几个版本的经典之作,基本的原理是顺序交换,多次排序)

冒泡排序的基础版本

遍历所有的元素,实现每个元素之间的交换,这是内层,外层是多次调用内层,调用次数是N-1次

冒泡排序的更新版本

a:每次比较的范围可以缩小,每次减一

b:每次比较可以加一个判断,如果交换的次数为0,则停止循环。

C.大小写的搞定方法

 1:可以用ascall码来搞定

 2:可以用库函数 tolower,或者说是toupper来搞定



阅读全文
0 0
原创粉丝点击