C++零碎笔记

void add(istream &source) {
    int n1, n2;
    source >> n1 >> n2;
    cout << n1 + n2;
}

int main() {
    stringstream inFile;
    add(inFile);
    cout << endl;
}
父类与子类关系的一个例子,这样写编译器不会报错
    cout << 5 % 3 << endl << (-5) % 3 << endl << 5 % (-3) <<endl<< (-5) % (-3) << endl;
    //2 -2 2 -2
    //mod运算:值是根据绝对值运算出来的,符号只考虑首位
    //int的除法运算均是向0取整,10/4=2,10/-4=-2
//使用typeid().name()可以查看变量类型
//使用staric_cast<目标类型>(输入)进行强制类型转换

typedef const int T;
T func(double a) { return static_cast<T>(a + 2); }

T b = func(1.5);
    cout << b <<":"<<typeid(b).name()<< endl;
    T a=1;
    cout << typeid(a).name()<< endl;
    cout << typeid(const T).name() << endl;
    //typeid不显示const
&是addr,也就是取某个变量的地址,这样使用时它必出现在等号右侧
出现在等号左侧的&是引用
*在指针操作中有两种用法:在声明指针变量,或取地址指向的变量的值
如果不是在声明变量,那么必然是在取值
    double dval;
    double *pd = &dval;       
    double **ppd = &pd;     //取址
    double *pd2 = pd;       //赋值,即*pd=*pd2
    int tar=10;
    const int* ip = &tar;
    int* const ip2 = &tar;
    int const* ip3 = &tar;
    //取决于*在const左边还是右边

    ip = &change;
    *ip = 100;  //Error

    ip2 = &change;  //Error
    *ip2 = 100;

    ip3 = &change;
    *ip3 = 100; //Error

    const int const* ptr = &tar;
    *ptr = 20; //Error
    ptr = &change;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值