一,回顾
// 基本数据类型
- (void)baseConst {
// 这两种情况,是一样的.
// 只读常量
int const a = 10;
const int b = 20;
}
二,指针
// 指针的那点小事
- (void)pointer {
// int类型的变量(整形变量)
int a = 20;
// 指针变量:指向int类型的变量的地址,作用是存储地址
int* p = &a;
*p = 30;
NSLog(@"%d", a);
}
三,那点事(1)
// 指针的那点小事
- (void)pointer {
// int类型的变量(整形变量)
int a = 20;
// 指针变量:指向int类型的变量的地址,作用是存储地址
int* p = &a;
*p = 30;
NSLog(@"%d", a);
}
四,那点事(2)
- (void)pointerAndConstSuper {
int a = 10;
int b = 20;
// 这两种情况是一样的,修饰的是具体的值(*p与*p1)
int const * p = &a;
const int* p1 = &a;
NSLog(@"%d, %d", *p, *p1);
// 可以修改地址
p = &b;
p1 = &b;
NSLog(@"%d, %d", *p, *p1);
b = 300;
NSLog(@"%d, %d", *p, *p1);
// 下面就错了
// *p = a;
// *p1 = a;
}
五,那点事(3)
- (void)superPointerAndConstSuper {
int a = 20;
int b = 30;
const int * const p = &a;
// p = &b; // 错的
// *p = b; // 也是错的.
}
六,那点事(4)
- (void)superPointerAndConstSuper {
int a = 20;
int b = 30;
const int * const p = &a;
// p = &b; // 错的
// *p = b; // 也是错的.
}
七,升级(1)
void pointer (const int* p) {
// 自己想想看吧
}
八,升级(2)
// 宏与常量的异同
// 宏是替换,没有变量的概念.用到就会有多余的内存.编译之前,就有了.
// 常量是全局的,内存只有一份.
九,重中之重(定义全局常量)
HGConst.h文件
extern NSString * const HGID;
HGConst.m文件
NSString * const HGID = @"http://www.520hg.com";
原文:http://www.cnblogs.com/iOS771722918/p/4857670.html