区块链技术博客
www.b2bchain.cn

你真的了解OC中的const、static、extern吗?求职学习资料

本文介绍了你真的了解OC中的const、static、extern吗?求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

请问你真的了解OC中的const、static、extern吗?咱们回过头一起再来看看这几个修饰符吧

一、const

const关键字修饰的数据类型将变常量,其值为不可修改,变为readonly;使用const的时候可以参考一个原则:哪个变量在const的右边,const就修饰谁,被const修饰的变量存储区域为常量区

1、使用

(1)、const在C语言使用
  • 常量指针

    形式为 const int *p或者int const *p ,其中p表示指向整形常量的指针,其中的整形常量就说明内容不可以改变,也就是不能通过指针修改内存中的数据;指针常量只能防止通过指针引用修改内存中的数据,并不保护指针所指向的对象,也就是指针指向的地址可以改变.

      int a=1;   int b=2;   const int *p1=&a;//定义常量指针,并且常量指针指向a地址   NSLog(@"const--%d",*p1);    //错误,间接引用常量指针不可以修改内存中的数据   //*ptr1=3;    //正确,常量指针可以指向其他变量   ptr1=&b;   NSLog(@"const--%d",*p1);    b = 3;   NSLog(@"const--%d",*p1);  2020-08-20 11:51:02.798683+0800  const--1 2020-08-20 11:51:02.798784+0800  const--2 2020-08-20 11:51:02.798808+0800  const--3
  • 指针常量

    指针常量形为int *const p,表示指针本身是一个常量,其指向不能改变,但是指向的内容可以改变.

      int a=1;   int b=2;   int *const p=&a;//定义常量指针,并且常量指针指向a地址   NSLog(@"const--%d",*p);    //错误,指针常量不可以指向其他地址   //p=&b;   *p = 5;   NSLog(@"const--%d",*p);    a = 3;   NSLog(@"const--%d",*p);  2020-08-20 12:00:22.011741+0800 const--1 2020-08-20 12:00:22.011833+0800 const--5 2020-08-20 12:00:22.011858+0800 const--3
  • 指向常量的常指针

    指向常量的指针形为const int* const p,它是指针常量和常量指针的结合,即不能改变指针的指向,也不能通过这个指针改变变量值。

      int a=1;   int b=2;   const int *const p=&a;//定义常量指针,并且常量指针指向a地址   NSLog(@"const--%d",*p);    //错误,不可以通过指针修改内存的值   //*p = 5;   NSLog(@"const--%d",*p);    //错误,不可以修改指针指向的地址   //*p = &b;   NSLog(@"const--%d",*p);
(2)、const 在OC中的使用
  • const修饰基本数据类型

const修饰OC中int、float、BOOL等基本数据类型

cosnt int a = 1; int const a = 1;//等价于第一种写法,a不可变 a = 2;//编译器报错
  • const修饰指针变量

OC中很多数据对象都有可变和不可变两种,所以一般都是利用const来定义值不可变、指向对象也不可变的变量,即NSString *const user = @"123";,如果只是想定义一个值可改变,指向对象可改变的变量,使用对应数据类型的不可变类即可。

“`objective-c
//不可变常量

请问你真的了解OC中的const、static、extern吗?咱们回过头一起再来看看这几个修饰符吧

一、const

const关键字修饰的数据类型将变常量,其值为不可修改,变为readonly;使用const的时候可以参考一个原则:哪个变量在const的右边,const就修饰谁,被const修饰的变量存储区域为常量区

1、使用

(1)、const在C语言使用
  • 常量指针

    形式为 const int *p或者int const *p ,其中p表示指向整形常量的指针,其中的整形常量就说明内容不可以改变,也就是不能通过指针修改内存中的数据;指针常量只能防止通过指针引用修改内存中的数据,并不保护指针所指向的对象,也就是指针指向的地址可以改变.

      int a=1;   int b=2;   const int *p1=&a;//定义常量指针,并且常量指针指向a地址   NSLog(@"const--%d",*p1);    //错误,间接引用常量指针不可以修改内存中的数据   //*ptr1=3;    //正确,常量指针可以指向其他变量   ptr1=&b;   NSLog(@"const--%d",*p1);    b = 3;   NSLog(@"const--%d",*p1);  2020-08-20 11:51:02.798683+0800  const--1 2020-08-20 11:51:02.798784+0800  const--2 2020-08-20 11:51:02.798808+0800  const--3
  • 指针常量

    指针常量形为int *const p,表示指针本身是一个常量,其指向不能改变,但是指向的内容可以改变.

      int a=1;   int b=2;   int *const p=&a;//定义常量指针,并且常量指针指向a地址   NSLog(@"const--%d",*p);    //错误,指针常量不可以指向其他地址   //p=&b;   *p = 5;   NSLog(@"const--%d",*p);    a = 3;   NSLog(@"const--%d",*p);  2020-08-20 12:00:22.011741+0800 const--1 2020-08-20 12:00:22.011833+0800 const--5 2020-08-20 12:00:22.011858+0800 const--3
  • 指向常量的常指针

    指向常量的指针形为const int* const p,它是指针常量和常量指针的结合,即不能改变指针的指向,也不能通过这个指针改变变量值。

      int a=1;   int b=2;   const int *const p=&a;//定义常量指针,并且常量指针指向a地址   NSLog(@"const--%d",*p);    //错误,不可以通过指针修改内存的值   //*p = 5;   NSLog(@"const--%d",*p);    //错误,不可以修改指针指向的地址   //*p = &b;   NSLog(@"const--%d",*p);
(2)、const 在OC中的使用
  • const修饰基本数据类型

const修饰OC中int、float、BOOL等基本数据类型

cosnt int a = 1; int const a = 1;//等价于第一种写法,a不可变 a = 2;//编译器报错
  • const修饰指针变量

OC中很多数据对象都有可变和不可变两种,所以一般都是利用const来定义值不可变、指向对象也不可变的变量,即NSString *const user = @"123";,如果只是想定义一个值可改变,指向对象可改变的变量,使用对应数据类型的不可变类即可。

“`objective-c
//不可变常量

请问你真的了解OC中的const、static、extern吗?咱们回过头一起再来看看这几个修饰符吧

一、const

const关键字修饰的数据类型将变常量,其值为不可修改,变为readonly;使用const的时候可以参考一个原则:哪个变量在const的右边,const就修饰谁,被const修饰的变量存储区域为常量区

1、使用

(1)、const在C语言使用
  • 常量指针

    形式为 const int *p或者int const *p ,其中p表示指向整形常量的指针,其中的整形常量就说明内容不可以改变,也就是不能通过指针修改内存中的数据;指针常量只能防止通过指针引用修改内存中的数据,并不保护指针所指向的对象,也就是指针指向的地址可以改变.

      int a=1;   int b=2;   const int *p1=&a;//定义常量指针,并且常量指针指向a地址   NSLog(@"const--%d",*p1);    //错误,间接引用常量指针不可以修改内存中的数据   //*ptr1=3;    //正确,常量指针可以指向其他变量   ptr1=&b;   NSLog(@"const--%d",*p1);    b = 3;   NSLog(@"const--%d",*p1);  2020-08-20 11:51:02.798683+0800  const--1 2020-08-20 11:51:02.798784+0800  const--2 2020-08-20 11:51:02.798808+0800  const--3
  • 指针常量

    指针常量形为int *const p,表示指针本身是一个常量,其指向不能改变,但是指向的内容可以改变.

      int a=1;   int b=2;   int *const p=&a;//定义常量指针,并且常量指针指向a地址   NSLog(@"const--%d",*p);    //错误,指针常量不可以指向其他地址   //p=&b;   *p = 5;   NSLog(@"const--%d",*p);    a = 3;   NSLog(@"const--%d",*p);  2020-08-20 12:00:22.011741+0800 const--1 2020-08-20 12:00:22.011833+0800 const--5 2020-08-20 12:00:22.011858+0800 const--3
  • 指向常量的常指针

    指向常量的指针形为const int* const p,它是指针常量和常量指针的结合,即不能改变指针的指向,也不能通过这个指针改变变量值。

      int a=1;   int b=2;   const int *const p=&a;//定义常量指针,并且常量指针指向a地址   NSLog(@"const--%d",*p);    //错误,不可以通过指针修改内存的值   //*p = 5;   NSLog(@"const--%d",*p);    //错误,不可以修改指针指向的地址   //*p = &b;   NSLog(@"const--%d",*p);
(2)、const 在OC中的使用
  • const修饰基本数据类型

const修饰OC中int、float、BOOL等基本数据类型

cosnt int a = 1; int const a = 1;//等价于第一种写法,a不可变 a = 2;//编译器报错
  • const修饰指针变量

OC中很多数据对象都有可变和不可变两种,所以一般都是利用const来定义值不可变、指向对象也不可变的变量,即NSString *const user = @"123";,如果只是想定义一个值可改变,指向对象可改变的变量,使用对应数据类型的不可变类即可。

“`objective-c
//不可变常量

部分转自互联网,侵权删除联系

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 你真的了解OC中的const、static、extern吗?求职学习资料
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们