static extern const修饰符

本文详细解析了C语言中指针的概念及其三种不同形式:常量指针、指向常量的指针及指向常量的常量指针,并介绍了它们的应用场景。此外,还探讨了全局变量与静态局部变量的区别,以及如何使用extern关键字来定义和声明全局常量。

const

const修饰的东西不能被修改(由左至右解读--> 顺时针螺旋法则
指针类型根据位置的不同可以理解成3种情况:
 
1.常量指针
NSString * const pt1;
//常量指针,指向一个字符串
//pt1初始化之后不能赋值,指向的对象值可以修改。
 
//定义字符串常量
//NSString* const pt1=@"123";
@"123"存储在文字常量区,相同的字符串只存储一份
NSString* pt2=@"123";
使用NSLog(@"%p,%p",pt1,pt2);可以看到地址相同
 
2.指向常量的指针
const NSString * pt2;
//指针变量,指向一个常量字符串
// 初始化之后可以赋值,即指向别的常量,指针本身的值可以修改,指向的值不能修改
 
3.指向常量的常量指针
const NSString *  const pt3;
 
extern

一般项目中,定义全局常量,会写在独立文件里

Constants.h 提供外接访问常量:

extern NSString * const str;

Constants.m 定义常量:

NSString * const str=@"1";

 

定义全局变量

//x .h 声明
extern const NSString * AA;
//x .m 定义
const NSString * AA = @"abc";
// 调用
#import "x.h"

 

static(静态局部变量/指定内部全局变量)

C语言的变量可分为动态存储变量和静态存储变量。

动态存储:程序在运行期间根据需要动态分配内存。

静态存储:程序在运行开始就分配固定内存。

C程序运行的内存分为程序区、静态存储区和动态存储区。

静态存储区存放:

1.全局变量

2.static修饰的局部变量

 

使用静态局部变量的情况:

1.需要变量能保留上一次调用结束时的值。

2.希望变量只被初始化一次,以后只是被引用,不希望对其重新赋值。(单例模式)

 

 

转载于:https://www.cnblogs.com/xiaotiansean/p/5272723.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值