C++学习笔记

1. warning:deprecated conversion from string constant to ‘char *’解决方案

源代码如下:

char *str = "I love math."

然后出现了warning。原因是:
char *背后的含义是:给我个字符串,我要修改它。
而理论上,我们传给函数的字面常量是没法被修改的。
所以说,比较和理的办法是把参数类型修改为const char *。

2. string类型不能赋值为NULL

⇨NULL和 “” 的区别

NULL代表声明了一个空对象,根本就不是一个字符串。
“”代表声明了一个对象实例,这个对象实例的值是一个长度为0的字符串。

⇨具体原因

String s=null;只是定义了一个句柄,也就是说你有了个引用,但是这个引用未指向任何内存空间
String s=”“;这个引用已经指向了一块是空字符串的内存空间,所以你可以对它操作,而不用担心什么了

3. string类型可以和char*类型直接合并

例如:

string s = "I like";
const char *str = "math!";
s += str;

4.struct声明、定义、和初始化的方式

这里写图片描述
补充:如果变量再声明、定义时没有初始化,则赋该类型的默认值。
⇨方式一

/*声明一个结构体类型Student*/
struct Student
{
    int num;  //包括一个整型变量num
    char name[20];  //包括一个字符数组name,可以容纳20个字符
    char sex;  //包括一个字符变量sex
    int age;   //包括一个整型变量age
    float score;   //包括一个单精度型变量
    char addr[30];  //包括一个字符数组addr,可以容纳30个字符
};  //最后有一个分号

/*定义一个结构体*/
Student student1, student2;

/*初始化*/
student1 = {10001, "Zhang Xin", 'M', 19, 90.5, "Shanghai"}

⇨方式二

/*声明一个结构体类型Student*/
struct Student
{
    int num;  //包括一个整型变量num
    char name[20];  //包括一个字符数组name,可以容纳20个字符
    char sex;  //包括一个字符变量sex
    int age;   //包括一个整型变量age
    float score;   //包括一个单精度型变量
    char addr[30];  //包括一个字符数组addr,可以容纳30个字符
};  //最后有一个分号

/*定义并初始化一个结构体*/
Student student1 = {10001, "Zhang Xin", 'M', 19, 90.5, "Shanghai"}

⇨方式三

/*声明、定义及初始化*/
struct Student
{
    int num;  //包括一个整型变量num
    char name[20];  //包括一个字符数组name,可以容纳20个字符
    char sex;  //包括一个字符变量sex
    int age;   //包括一个整型变量age
    float score;   //包括一个单精度型变量
    char addr[30];  //包括一个字符数组addr,可以容纳30个字符
}Student student1 = {10001, "Zhang Xin", 'M', 19, 90.5, "Shanghai"};

附:今天看到的一种形式

struct { int number; string str[10]; }keywords={3,"int","main","return"} ; //关键词
struct { int number; string str[10]; } operators ={5,"+","*","=","+=","*="}; //运算符
struct { int number; string str[10]; } boundaries ={6,"(",")","{","}",",",";"} ; //分界符
struct { int number; string str[100];} identifieres={0}; //标识符
struct { int number; string str[100];} Unsigned_integer={0}; //无符号整数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kiloveyousmile

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值