IOS-objectiveC【语法】修饰符 static extern const
objectiveC【语法】修饰符 static extern const
const
I 常量指针
II 指向常量的指针
III 指向常量的常量指针
extern
static
疑问
- static const NSString * const ChatWindow_STR_TITLE_INDEX[] = {
- @"msg_type_all",
- @"msg_type_area",
- @"msg_type_PM",
- @"msg_type_team",
- @"guild_title",
- @"msg_type_system",
- @"msg_type_world"
- };
我在.h文件里定义一个static变量,
I .h初始化
在不同的.m里调用都有值,这些值是否同一个对象?
【不同的对象】
II .m里初始化(or赋值)
初始化的值只在.m文件里有效果,即等同于c,将变量的作用域限定于本文件
其他.m文件调用的值都没有赋值。
【不同的对象】
结论
static
// static变量属于本类,不同的类对应的是不同的对象
// static变量同一个类所有对象中共享,只初始化一次
const
// static const变量同static的结论I,只是不能修改了,但是还是不同的对象
// extern const变量只有一个对象,标准的常量的定义方法
// extern的意思就是这个变量已经定义了,你只负责用就行了
2 char *str1={"Hello"};
3 char *str2={"Hello World"};
4 char * const ptr1 =str1 ;
5 //指针常量--指针本身是常量,指向的地址不可以变化,但是指向的地址所对应的内容可以变化
6
7 ptr1 =str2; //错误 因为这是一个常量指针,改变指向的地址了
8
9 printf("%s \n",*ptr1);
10 }
11
12
13 // 编译错误 error C3892: 'ptr1' : you cannot assign to a variable that is const
14
第二个
2 char *str1={"Hello"};
3 char *str2={"Hello World"};
4 char * const ptr1 =str1 ;
5 //指针常量--指针本身是常量,指向的地址不可以变化,但是指向的地址所对应的内容可以变化
6
7 *ptr1 ='A';// 正确 因为指向的地址的内容是可以变化的
8
9 printf("%c \n",*ptr1);
10 }
11
12 //输出 A
13
第三个
2 char *str1={"Hello"};
3 char *str2={"Hello World"};
4 const char *ptr1 = str1;
5 //常量指针--指向字符串常量,所指向的字符串内容不能变,但是指向的地址可以变化
6
7 ptr1=str2;// 正确 因为指向的地址是可以变化的
8
9 printf("%s \n",ptr1);
10 }
11
12 //输出 Hello World
第四个
2 char *str1={"Hello"};
3 char *str2={"Hello World"};
4 const char *ptr1 = str2;
5 //常量指针--指向字符串常量,所指向的字符串内容不能变,但是指向的地址可以变化
6
7 ptr1='A';// 错误 因为指向的地址是内容是不可以变化的
8
9 printf("%c \n",ptr1);
10 }
11
12
13 //编译错误 error C2440: '=' : cannot convert from 'char' to 'const char *'
IOS-objectiveC【语法】修饰符 static extern const相关推荐
- ArcGIS AddIN开发异常之--修饰符“static”对该项无效
修饰符"static"对该项无效, 修饰符"internal"对该项无效. 该异常弹出的位置为Config.Designer.CS文件中相关插件的声明附近 in ...
- 【java基础面向对象】方法的重写、 package和import包、访问控制修饰符,static,final,static final,抽象方法
目录 1. 方法的重写(override/overriding):重新写.覆盖 2. package和import: 3. 访问控制修饰符:-----------------------保护数据的安全 ...
- 修饰符static、final、abstract与接口
前言:在易途学习的第十二天,时时刻刻提醒自己不要忘了来这里的目的,学好技术,2017年6月份找到一份满意的工作 面向对象高阶特征 访问权限修饰符 private:私有的 只有本类当中可以访问(defa ...
- register,static,extern,const,typedef,volatile关键字
一.register 用register修饰的作用: 请求编译器尽可能(CPU寄存器资源有限)将变量的值保存在CPU内部寄存器中,省去了CPU从内存中抓取数据的时间,提高了程序的运行效率. 何时用re ...
- Java学习之路-----Java基础简介,基础语法,Java标识符,修饰符,关键字与注释
这里写目录标题 Java简介 Java发展历程 Java语言平台版本 Java语言的特点 Java语言跨平台原理--JVM JRE和JDK JDK安装路径下的目录解释 Java基础语法 Java标识符 ...
- 关于static修饰符
一.类的 static 数据成员 1. 类的 static 数据成员必须在类外部进行初始化. class Test { public: ... .. ...
- charat越界返回什么_Java基本语法方法修饰符返回类型参数列表异常列表
方法[method name] 定义 方法[method]是类的成员之一,(因为在java中,方法不能单独定义,它必须在类之中). 修饰符 返回类型 方法名()[throws 异常类型]{ //方法体 ...
- JAVA基础-栈与堆,static、final修饰符、内部类和Java内存分配
JAVA基础-栈与堆,static.final修饰符.内部类和Java内存分配 发布时间: 2013/01/12 22:29 QQ空间 新浪微博 腾讯微博 人人网 豆瓣网 百度空间 百度搜藏 开心网 ...
- 10.0_[Java 封装]-抽象/封装/构造/重载/ static 修饰符
################################################## 目录 抽象编程 面向对象设计的过程 类和对象的关系 为什么使用面向对象 this 关键字 类的成员 ...
- private static final 修饰符
java修饰符分类修饰符字段修饰符方法修饰符根据功能同主要分下几种 1.权限访问修饰符 public,protected,default,private,四种级别修饰符都用来修饰类.方法和字段 包外 ...
最新文章
- eclipse中代码没错但项目名称有个小红X
- 浅谈 Python 的 with 语句
- Leetcode 215. 数组中的第K个最大元素 解题思路及C++实现
- Condition中的transferForSignal()方法的不解
- Linux LVM与磁盘配额详解
- load styles.php,wordpress后台管理超时没反应:load-scripts.php载入缓慢出错
- html 语义化标签拾遗
- 下拉框_jQuery 美化界面的下拉框
- mysql 终端模拟_mysql客户端模拟脏读、幻读和可重复读
- Experimental-work1
- C语言的预编译,程序员必须懂的知识!【预编译指令】【预编译过程】
- Linux中的sed命令
- POST 一张 图像的调试来认识 http post
- python---python3 获取当前路径及os.path.dirname的使用;os.path.abspath(__file__)用法及意义
- vs 生成get set_使用EasyCode+Lombok快速生成增删查改的代码
- 检测本计算机的IP地址,告诉您如何使用命令检查本地IP地址
- 通过Redis实现数据的交集、并集、补集
- 【STM32-V7】STM32H743XIH6开发板,丰富软件资源,强劲硬件配置,大量软件解决方案持续更新中(2022-11-22)
- hive与impala相关
- neo4j安装_Neo4J OGM与Quarkus