三、复合类型

日积月累,日新月异

本篇主要介绍c++中有关数组和字符串相关知识。

  1. 数组声明(与java的一致)type arrayName[size];

  2. 数组数据的获取和java相同使用 arrayName[对应下标,从0开始],同样的编译器无法告知你是否超出数组的范围,java中超出范围会抛出index of exception 数组越界异常,c++则不一定,c++中属于按地址取值,如果对应位置有数据则显示数据,反之则可能报错。

  3. c+中允许以下声明int a[3]; java中不允许,因为此时未给其申请内存,属于不可用。 c++中此时可以通过 a[0]~a[2] 进行赋值,如果进行初始化操作也是不允许的。比如: int a[3]; a[3]={1,2,3}

  4. c++ 中数组初始化规则:只有在定义数组的时候才可以使用初始化,此后不允许使用,也不能将数组赋值给另一个数组。(c++中对于地址有专门的描述方式比如指针,有关地址的处理上就可能不一样)

    int a[4]={3,6,8,9};   //c++ 允许,java不允许
    int a[]={3,6,7,8};   // c++ 允许 java 允许
    int a[4];           //c++ 允许 java不允许
    a[4]={1,2,3,4};     //c++和java都不允许 
    int a[]={3,6,7,8}; 
    int b[];  b=a;      // c++不允许 java允许

    数组的操作在java 中和对象的是一致的,” = ” 是将引用copy, b=a 相当于b,a指向同一个数组或者对象。C++中对象的操作类似java,原理还带深入,不过表现是一致的,但是数组操作是不一样的。数组地址采用的是常量指针,所以不允许重新赋值,换言之如果采用的不是常量指针就是可以的,究竟处于什么考虑这样设置,还需深究

    举例,c++ 对象行为是允许的

    A a,b;
    a=new A();
    b=a;
  5. 声明字符串可以采用 char fish[]=" ddff";字符串的存储上最后一位是空字符,用于标识字符串结束

  6. 使用string的时候需要导入同文件 cstring或者string.h(c语言风格)

  7. strlen 计算可见字符的长度 sizeof(arrayName) 数组的长度,字符串输出到出现空字符的时候停止,即使此时有其他的字符

  8. 要使用string类的时候必须包含头文件string 注意是小写,还需要使用命名空间

    using namespace std; //(c++风格)
  9. c++字符串的声明是小写的string,java中是大写,而且c++中字符串可以当做数组处理
    例子:

    string str1="test";
    cout<<str1[0];   //结果为t
  10. 不能将数组赋值给另一个数组但是可以将string对象赋值给另一个string对象

  11. string简化了字符串合并操作,可使用+或者+=等同于java中的用法

  12. 对于c语言风格如果想copy字符串可以使用

    strcpy(char1,char2); //copy char2 to char1
    strcat(char1,char2);//append char2 to char1

相关资料:汇总地址


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值