C++学习中……

参考书籍《C++ primer plus》
当复制代码时,最好可能会出现代码错乱的问题,将CSDN换一个浏览器打开可能就行
1.cpp

#include <iostream>
int main()
{
   //using namespace std;
    using std::cout;
    using std::endl;//遇上面的这种方法相同,只不过上面这种方法在进行大的程序编写的时候容易出现问题。
    cout<< "come up to and C++ me some time";
    cout <<endl;
    cout<< "you't regret it!"<<endl;
    return 0;
}

2.cin-cout.cpp

#include <iostream>

int main()
{
    using namespace std;
    cout <<"请输入您的年龄"<<endl;
    int a ;
    cin>>a;
    a = a*12;
    cout<<"该年龄包含"<<a<<"个月"<<endl;
    return 0;

}

3_bool.cpp

#include <iostream>
int main()
{
    using namespace std;
    //bool is_ready = true;
    bool is_ready;
    is_ready = 100;//非零值会转化为ture,ture的值在计算机中存储的是1,false存储的是0;
    cout<< is_ready;
    return 0;
}

4_const.cpp

#include<iostream>
int main()
{
    using namespace std;
    const int number = 10;//const 定义一个常量,替代C语言中的#define,在定义常量后,常量的数值无法改变。
    //number = 111;此语句错误,因为number为一个常量不可更改
    cout<<number;
    return 0;
}

5_string.cpp

#include<iostream>
#include<cstring>
int main()
{
    using namespace std;
    const int size = 15;
    char name1[size];
    char name2[size] = "hello world!";
    cout<<name2<<endl;
    cout<<"请输入字符"<<endl;
    cin>>name1;
    cout<<name1<<endl;
    cout<<sizeof(name1)<<endl;
    //sizeof表示一个数组的大小,当他后面跟的是一个数组名称的时候,输出的整个数组的大小
    cout<<strlen(name1)<<endl;
    //strlen只显示存储在数组中的字符串的长度,而不是数组本身的长度,另外strlen只计算可见的数组,不计算空字符
    return 0;
}

6_cin_string_getline.cpp

/****************************************************
cin 当输入的名字有空格的时候,空格会被当做‘/0’处理,后面的字符串放在下一个的输入位置
cin.getline输入时不会遇到空格就停止,他遇到换行符时才会停止,但他会丢弃掉换行符
cin.get输入时也是遇到换行符停止,与cin.getline不同的是他不会丢弃掉换行符,此时需要进行其他的操作来弥补
***************************************************/
#include<iostream>
int main()
{
    using namespace std;
    const int size = 20;
    char name[size];
    char food[size];
    cout<<"please input your name:"<<endl;
    //cin>>name;
    //cin.getline(name,20);
    cin.get(name,20);
    cin.get();
    cout<<"please input what you like in foods:";
    //cin>>food;
    cin.getline(food,20);
    cout<<name<<",your favorite food is "<<food<<endl;
    return 0 ;
}

7_string.cpp

/*字符串类型的数据可以直接相加和相互赋值*/
#include<iostream>
#include<string.h>
int main()
{
    using namespace std;
    string s1 = "hello";
    string s2 = " world";
    string s4;
    s4 = s2;
    string s3 = s1+s2;
    cout<<s1<<endl;
    cout<<s2<<endl;
    cout<<s3<<endl;
    cout<<s4<<endl;
    return 0;
}

8_string_n.cpp

/*
上述代码中使用了\\来显示\,因为当个\表示转义序列的第一个字符
另外,转义序列\" 表示双引号,而不是字符串结尾。
*/
#include<iostream>
#include<string.h>

int main()
{
    using namespace std;
    cout<<"Jim \"King\" used \"\\n\" inseaded of endl";
    return 0;
}

9_structure.cpp

/*结构体数组的初始化以及调用*/
#include<iostream>
struct inflatable//结构体的创建
{
    char name[20];
    float volume;
    double price;
};

int main()
{
    using namespace std;
    inflatable guests[2] =//结构体的初始化
    {
        {"lihaoyang",0.2,652.55},
        {"sdfdsf",52335.252,4522.525}

    };
    cout<<guests[0].name<<endl;
    cout<<guests[1].price<<endl;
    return 0;
}

10_union.cpp

#include<iostream>

struct food
{
    int price;
    std::string name;
    union id
    {
        int id_number;//共用体最多只能由一个赋值的初始项,共用体公用一段内存,每次只能访问其中的一个值。
        char id_char;
    }id_val;
}food1;
int main()
{
    using namespace std;
    cout<<"请输入编号"<<endl;
    cin>>food1.id_val.id_number;
    cout<<food1.id_val.id_number;
    cout<<"请输入字符编号"<<endl;
    cin>>food1.id_val.id_char;
    cout<<food1.id_val.id_char<<endl;
    cout<<food1.id_val.id_number<<endl;//这个语句不存在因为每次只能调用共用体的一个值
}

11_zhizhen.cpp

#include<iostream>
int main()
{
    using namespace std;
    int i = 5;
    int j = 6;
    int *p = &i;//将i的地址赋值给了p
    cout<<*p<<endl;
    cout<<p<<endl;
    cout <<&j<<endl;
}

12_new_delete.cpp

#include<iostream>
int main()
{
    using namespace std;
    int *ps = new int;
    cout<<ps<<endl;
    *ps = 5;
    cout<<*ps<<endl;
    delete ps;//delete只是将ps指向的内存空间释放了,但仍指向之前的地址。
    ps = NULL;//在将指针指向null时,才会将PS指针的指向清除
    cout<<*ps<<endl;
    return 0;
}

13_arrey_new_pointer

#include<iostream>
int main()
{
    using namespace std;
    double *p = new double[3];//动态数组的声明
    p[0] = 0;
    p[1] = 2;
    p[2] = 8;
    cout<<p[0]<<endl;
    cout<<p[1]<<endl;
    cout<<p[2]<<endl;

    p = p+1;//添加之后p[0]会指向第二个元素(2),之后的会往统一向后推一个。指针加一指向的下一个元素
    cout<<p[0]<<endl;
    cout<<p[1]<<endl;
    cout<<p[2]<<endl;//第三个指针的指向将会不知道去哪

    cout<<*(p+1)<<endl;//指向的是第二个元素
    cout<<*p+1<<endl;//如果不使用括号的话,是给*p 加上1
    cout<<*p<<endl;//指向的是数组的首元素
    cout<<p<<endl;//指向的是首地址
    delete [] p;//释放动态数组的内存
    return 0;
}

14_delete.cpp

#include<iostream>
#include<cstring>
int main()
{
    using namespace std;
    char *getname(void);
    char *name;
    name = getname();
    cout<<name<<endl<<(int *)name<<endl;
    /*一般来说,如果给cout提供一个指针,他就会打印地址,但如果指针的类型是char*,则cout将显示指向的字符串。
    如果要显示字符串的地址,则必须将这种指针强制转化为另一种指针类型,如int*型*/
    return 0;
}
char *getname()
{
    using namespace std;
    char temp[80];
    cout<<"Enter your name"<<endl;//多注意看看这个函数
    cin>>temp;
    char *pn = new char[strlen(temp)+1];//利用这个函数可以很大程度上的减少存储的空间,及我们所说的动态存储。
    strcpy(pn,temp);
    return pn;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值