iOS--C语言指针
2015-10-28 20:30
281 查看
1.&是取地址符,可以查看一个变量的地址(内存首地址),*是取值符,输出指针地址用%p
2.打印字节长度
short b = 12;
short *p = &b;
printf("sizeB = %lu\n", sizeof(b));
printf("sizeP = %lu\n", sizeof(p));
输出结果:
//不管定义的数据类型是什么,指针变量所占字节都为8,这与操作系统的位数有关,64位的占8个字节,32位的占4个字节。
来看看怎样把64位的操作系统换成32位的
(1)在项目中找"Build Settings"->"Architectures"->第二个"Standard.……",点击"Standard……",在弹出的框里选择32位的系统
(2)不要以为这样就行可以了,回到程序里运行一下就可以看到还有错误的
(3)打开原来的界面,在搜索栏里所搜"gar", 就会出现有关于Object-C一栏,把"yes"改为"no"就行了。
修改前:
修改后:
这样就可以运行程序,输出p的字节长度为4,也就是操作系统所占字节数。
修改后的结果:
(4)最后,换回64位的原路返回就行了!
3.注意区分
int *j = &a;
如果出现*的地方,前面有类型修饰符,此时*仅仅起到标示的作用,告诉编译器这是一个指针变量。
*j = 523;
如果出现*的地方前面没有任何类型修饰符,此时的*代表取值操作符,它会把指针指向的区域取出来。
j ;
如果前面没有*和类型修饰符,那么这个变量就是一个指针变量,它里面存储某一内存地址。
2.打印字节长度
short b = 12;
short *p = &b;
printf("sizeB = %lu\n", sizeof(b));
printf("sizeP = %lu\n", sizeof(p));
输出结果:
//不管定义的数据类型是什么,指针变量所占字节都为8,这与操作系统的位数有关,64位的占8个字节,32位的占4个字节。
来看看怎样把64位的操作系统换成32位的
(1)在项目中找"Build Settings"->"Architectures"->第二个"Standard.……",点击"Standard……",在弹出的框里选择32位的系统
(2)不要以为这样就行可以了,回到程序里运行一下就可以看到还有错误的
(3)打开原来的界面,在搜索栏里所搜"gar", 就会出现有关于Object-C一栏,把"yes"改为"no"就行了。
修改前:
修改后:
这样就可以运行程序,输出p的字节长度为4,也就是操作系统所占字节数。
修改后的结果:
(4)最后,换回64位的原路返回就行了!
3.注意区分
int *j = &a;
如果出现*的地方,前面有类型修饰符,此时*仅仅起到标示的作用,告诉编译器这是一个指针变量。
*j = 523;
如果出现*的地方前面没有任何类型修饰符,此时的*代表取值操作符,它会把指针指向的区域取出来。
j ;
如果前面没有*和类型修饰符,那么这个变量就是一个指针变量,它里面存储某一内存地址。
相关文章推荐
- The Definitive C++ Book Guide and List
- C++primer学习:面象对象程序设计(4):继承类中的作用域和拷贝控制
- 交换两个数组元素的地址可以交换它们的值吗?
- C语言实现小游戏(二)
- 杜绝“野指针”
- C++实现牛顿迭代法求解f(x)=0
- NOI题库1.5.18角谷猜想
- Date语意学 Data Member的存取
- C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- [c++]内联函数
- [c++]默认参数
- C++_4种强制类型转换
- c++中dll介绍(详细)
- C++11学习笔记4---lambda表达式
- 确保线程执行函数体正确使用引用传递
- C++11 lambda 表达式解析
- C语言基础-分支结构
- C++ STL queue化繁为简介绍
- C++编程 (三)--- 深入C++后台开发
- c语言短信猫开发代码