吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2024|回复: 11
收起左侧

[C&C++ 转载] 夯实基础_C++_Day-2

[复制链接]
rain-xuan 发表于 2021-7-23 21:38
本帖最后由 rain-xuan 于 2021-7-24 12:01 编辑

Day_2


using的声明和编译指令(重点)


using的声明可以让命名空间中的某个标识符可以直接使用

namespace A{
    int a=10,b,c;
}
test_1()
{
    using A::a; //从这一行开始以后标识符a都是A作用域中的a
    cout << a << endl;

    int a=20; //这是会报错的,重定义的错误,using的声明相当于局部变量,不可在局部作用域下重定义
}

using的编译指令让命名空间中的标识符都可以直接使用

namespace A{
    int a=10,b=20,c=30;
}
test2(){
    using namespace A;
    cout << a << endl;
    cout << b << endl;
    cout << c << endl;

    int a=50; //正确,因为这时的命名空间的a相当于全局变量,这里的a是局部变量,不影响就近原则
    cout << a << endl; //a的值为50,就近原则
}

struct类型的加强(重点)


  • C语言定义了结构体之后,定义变量时还要加struct关键字,但是C++不用
  • C语言的结构体只能定义成员,但是C++既可以定义成员,又可以定义方法

struct node1{
    int a = 0;
    char name[10];
};

test_1(){
    node1 Node; //强化一
}

struct node2{
    int b = 10;
    void func()
    {
        cout << "func" << endl;
    }
};
test_2(){
    node2 Node_2;
    Node_2.func();
}

更加严格的类型检查(了解)

#include <stdio.h>
#include <stdlib.h>

int main()
{
    char* p = malloc(64); //隐式声明转换
    return 0;
}

#include <iostream>
using namespace std;

int main()
{
    //char* p = malloc(64); //会报错 void*
    char* p = (char*)malloc(64); //不可以隐式声明,必须显示转换
    return 0;
}

三目运算符(了解)


  • c语言三目运算符返回的是右值
  • c++语言三目运算符返回的是左值
  • 在赋值操作符左边的为左值,右边的为右值(存疑,待完善)

test_1(){
    int a = 10;
    int b = 20;
    printf("%d\n",a>b?a:b);//打印a、b中较大的值
    (a>b?a:b) = 100; //err 等价于 20 = 100
    //正确操作
    *(a>b?&a:&b) = 100; //取a、b的地址,然后解引用,相当于给两者较大的变量符值
    printf("a=%d,b=%d",a,b); //a = 10 , b = 100
}

test_2(){
    int a = 10;
    int b = 20;
    (a>b?a:b) = 100;
    cout << "a=" << a <<" " << "b = " << b << endl; //a = 10 , b = 100;
}


免费评分

参与人数 3吾爱币 +1 热心值 +3 收起 理由
tlf + 1 热心回复!
suoai216 + 1 + 1 热心回复!
sam喵喵 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

memorywalker 发表于 2021-7-23 23:19
c++技巧性东西太多,做同一件事,多种方法,导致难度太大
czzzz 发表于 2021-7-23 21:45
白云点缀的蓝 发表于 2021-7-23 21:51
sergin 发表于 2021-7-23 22:20
谢谢楼主分享!
丶懒喵喵 发表于 2021-7-23 23:38
bsjasdq 发表于 2021-7-23 21:51
Java是c\c++写的,亲,

头一次看见负的吾爱币!
clevermoon 发表于 2021-7-23 23:48
对于c++l来说,难度高是名声在外
limit7 发表于 2021-7-24 00:04
感谢 分享,收藏备用,养肥了再来。
人心所向 发表于 2021-7-24 00:18
厉害厉害
头像被屏蔽
tlf 发表于 2021-7-24 08:08
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 11:58

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表