C语言-指针
来源:互联网 发布:制作app软件 编辑:程序博客网 时间:2024/06/01 10:42
数据访问分为两种形式:直接访问和间接访问.
内存单元的编号叫做地址.
指针使用来存放地址变量的.它在定义变量时其实还是一种数据类型,但是在实际开发过程中就说指针是地址.
例如:int *p = NULL; 尽管int *之间用空格,但是他们是一体的,NULL恒等于0;
指针变量所占的字节只与操作系统有关,32位操作系统占用4个字节,64为操作系统占用8字节. 在Xcode里键入-fno-objc-arc
取址运算符:& 地址是16位的16进制数.&可以取出变量的地址,用%d可以打印地址. *是取值运算符,可以去除指针(地址)里面的值.
注意!!!!!!!!int *或者char *是一个整体,表示的是整型的指针或者char型的指针,也就是说,前面如果有类型标示符的话,*不是取值运算符.
指针的算术运算 加:p++,表示向高位移动4字节. 减:p—,表示向低位移动4字节.
注意!!!!!!!指针的类型决定它移动几个字节,int float为4字节.char为1字节,double为8字节.
指针的重指向:指针变量可以赋值,如果赋值的话,指针就指向了另外的一块区域,成为指针的重指向.
指针与数组:数组是用连续的内存空间,存储数据的构造类型.
数组名就是数组的首地址.
*(p+i)等价于p[i]
指针与数组的不同:1-所占的内存空间不同,指针所占用的内存空间只和操作系统有关,数组由数组元素的个数以及数组构造的元素的类型决定的.2-数组名是一个常量,而指针是一个变量.
指针与字符串:
字符数组首元素的地址恒等于数组名.
我们可以通过取值符操作单个字符,例如*(name+i)等价于name[i]
指针数组:用来存放指针的数组,数组的元素都是指针.
指针与函数:
交换举例:
void jiaohuan (int *a,int *b);
void jiaohuan (int *a,int *b)
{
*a=*a^*b;
*b=*a^*b;
*a=*a^*b;
}
int a=3,b=5;
jiaohuan(&a,&b);
printf("%d %d",a,b);
0 0
- C语言中的指针
- C语言指针问题
- C语言野指针
- C语言之指针
- C语言指针简介
- C语言的指针
- c语言指针点滴
- C语言的指针
- c语言指针简介
- c语言 数组 指针
- c语言指针详解
- 理解C语言指针
- c语言函数指针
- C语言指针
- C语言之指针
- c语言指针详解
- c语言中的指针
- C语言--指针,数组
- LightOJ Array Queries 1082【线段树求区间最值】
- 图像处理时一些卷积核子函数的生成
- break与return跳转的区别
- UVa 10044 - Erdos Numbers
- 在eclipse和netbeans下如何向main函数传参
- C语言-指针
- Nested exception: 前言中不允许有内容。
- Wormholes 3259 (最短路+判断负环是否存在)
- hdu 5410 CRB and His Birthday 01背包和完全背包
- 使用VS2012编译Qt-5.5.0
- POJ-2409-Let it Bead&&NYOJ-280-LK的项链
- PHP——底层运行机制与原理
- C++头文件与实现文件分别写什么
- 如何优化ListView