全局变量的内部链接

在这一章中我们涉及了很多材料。好的工作,你做的很好!
一个语句块(又名。一个复合语句)由编译器处理,好像它是一个语句一样。这些都放在大括号({和})之间,并且在任何地方都使用过。
当该块是输入的一部分,当它退出时被破坏时,局部变量被创建。他们只能在他们被声明的块内访问。
全局变量在程序启动时被创建,并且在结束时被销毁。他们可以在程序中使用任何地方。非const的全局变量,一般应避免因为他们是邪恶的。
静态关键字可以用来提供一个全局变量的内部链接,所以它只能在声明它的文件中使用。它也可以用来给一个局部变量的静态持续时间,这意味着本地变量保留它的值,即使它超出范围。
命名空间是一个区域中的所有名称的唯一性是有保证的。命名空间的使用是避免命名冲突的一个伟大的方法。避免使用“使用语句”功能以外的功能。
当一个类型转换成另一种类型而不使用强制转换时,会发生隐式类型转换。当一个类型转换为另一个使用强制转换时,将发生显式类型转换。在某些情况下,这是完全安全的,而在其他情况下,数据可能会丢失。避免使用C风格转换和static_cast相反。


指针的算术运算
C++语言允许你对指针进行整数的加减运算。如果指针指向一个整数,PTR + 1后的下一个整数PTR在内存中的地址。PTR - 1在PTR的整数地址。
值得注意的是,PTR + 1不在PTR返回的内存地址,但内存地址,ptr指向下一个对象的类型。如果指针指向一个整数(假设4个字节),PTR + 3在PTR 3个整数,这是12的内存地址在PTR。如果指针指向一个char,它总是1字节,PTR + 3在PTR 3字符,这是3的内存地址在PTR。
计算一个指针算术表达式的结果时,编译器总是乘以整数操作数所指向对象的大小。这被称为缩放。
考虑下面的程序:

#include <iostream>
 
int main()
{
    int value = 7;
    int *ptr = &value;
 
    std::cout << ptr << '\n';
    std::cout << ptr+1 << '\n';
    std::cout << ptr+2 << '\n';
    std::cout << ptr+3 << '\n';
 
    return 0;
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值