c/c++一些不经常出现的语法

1.extern:

引用外部文件变量,extern int aa;  

1.不可以对aa进行初始化但是可以对aa赋值(为了理解这一点本人回顾了一些赋值与初始化的区别
赋值是对已经有的对象进行操作,而初始化是从没有到有,还有内存分配等操作,而aa在外部文件中
就已经初始化了,然后我们在进行初始化当然不行)

2.在全局变量中引用了外部变量之后,extern int aa,就不能在全局变量中定义aa了int  aa,但是局部变量中可以,反正不同区域中不会相互影响。

3.在一个区域中也可以写多个extern  int  aa;

2.在全局和局步变量中都定义了int a;但是在局部变量中想用全局变量的int  a,怎么办

在aa前面加上::就可以了::a

3.一个问题:

float a=1.0;
cout<<(int &)a<<endl;
这它会输出什么?

答案:把浮点数a存储在计算机中的二进制以整型的方式输出。

因为它转变为了一个匿名引用,但是确实浮点类型的所以以这种方式输出。

比如:
int  a=72;
cout <<(char &)a<<endl;
输出的就是H.


但是如果:
int a=1;
cout<<(int &)a<<endl;
输出的就是1.

4.对c++的string类

(1)用cin>>string对象时遇到空格,换行,制表,等等,就会结束捕获。
除非是开头就遇到上面的情况,那么直到有效字符才开始捕获

(2)用getline(cin,hh);方式读取将读取一整行,直到遇到换行符号,并且连换行一并读取,但是string对象
中不存在换行符号。

(3)string对象判断内容是否为空的方法为string对象.empty()


5.c++11提高的范围for语句

for (declaration: expression)

statement

举例:

代码:
 
#include<cctype>
#include<iostream>
#include<string>
using namespace std;
int main(void)
{
        string s("Hello World");
        for(auto &c : s)
        {
                c=toupper(c);
        }

        cout<<s<<endl;
        return 0;
}

/*
for (declaration: expression)
{
    statement
}
其中expression部分是一个对象,用于表是一个序列。declaration负责定义一个变量,每一次循环
declaration都会被重新定义并且用下一个序列基础元素来进行初始化,总之会把序列元素全部循环一
遍。

{}就是执行语句。上面例子string序列的基本元素是char类型,(auto)c是s序列的元素的引用
所以把s的内容该了。
*/

v

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值