cout和cin后面跟指针的问题

cout<<mm 和cin>>nn;它是可以自己识别mm和nn是不是指针变量吗?
    答:cin后面只能跟char*的指针,别的类型指针(eg:int*)报错; 
           cout后面跟char*的指针,打印的是里面的内容,cout后面跟int*的指针,打印的是地址;
            cin输入时,如果给char* 会自动结束符吗,会的;
            char *p2;前提是p2指向有空间的地址
    cin >> * p2 //只是输入一个字符
     cin >> p2 ;   //输入p2所指的空间内容 全部修改
    在C语言里,输出一个字符串的指针很方便,直接printf("%p/n",p);就输出了。
    而 C++ cout 太自作聪明了,为了省去我们循环输出字符的麻烦, cout<<p<<endl; 被翻译为输出 p 指向的字符串值。
    这个时候要输出 p 的指针值就只能先将其转为 void * 再输出。因为 void 型, cout 没法输出,只能乖乖输出指针。
    此外 cout<<&p<<endl; 是不可取的,它其实等效于 printf("%p/n",&p);
    那个输出流运算符被重载过,这样更加方便输出字符串,因为字符串比较特殊,用/0结尾,
    所以这样的重载可行,输出到内存为 /0 的地方就可以,但是普通数组没有这样的特性所以不重载,直接输出地址
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值