C-033.指针的运算
2015-12-03 11:28
239 查看
指针变量:存放是内存字节的地址编号(无符号的整形数)
指针:是运算受限的无符号的整形数
指针运算:(我得理解就是所指向地址的运算)
指针 + 整形数 === 指针变量中值 + sizeof(其所指向数据类型)
指针 - 整数数 === 指针变量中值 - sizeof(其所指向数据类型)
pointer1 - pointer2 = (pointer1中值 - pointer2中值) / sizeof(其指向数据类型)
赋值运算:
=
+= 必须是一个整形数
-= 必须是一个整形数
比较运算
==
!=
>
<
>=
<=
自增自减
p++; p = p + 1;
++p; p = p + 1;
--p;
p--;
void test1(){
//算数运算
int nums[5] = {1,2,3,4,5};
int * pointer1 = nums;
int * pointer2 = &nums[4];
size_t size = pointer2 - pointer1;
printf("%lu\n",size);//输出4
}
void test2(){
//赋值运算
int nums[] = {1,2,3,4,5};
int *p = nums;
p += 2;
p = p + 2;
p -= 1;
printf("%d\n",*p);//输出4
}
int main(int argc, const char * argv[]) {
//关系运算
int nums[] = {1,2,3,4,5};//创建一个数组
int *p = nums;//指针指向一个数组,指向的是数组首元素的地址,指向1
printf("%p\n",p);//地址0x7fff5fbff760
printf("%d\n",*p);//打印1
p++; //int类型的p++使它增加了4字节,使p指向2
printf("%p\n",p);//地址0x7fff5fbff764
printf("%d\n",*p);//打印2
int result = nums == p; //比较的是他们的地址,p现在指向的是2,所以打印0
printf("%d\n",result);
return 0;
}
指针:是运算受限的无符号的整形数
指针运算:(我得理解就是所指向地址的运算)
指针 + 整形数 === 指针变量中值 + sizeof(其所指向数据类型)
指针 - 整数数 === 指针变量中值 - sizeof(其所指向数据类型)
pointer1 - pointer2 = (pointer1中值 - pointer2中值) / sizeof(其指向数据类型)
赋值运算:
=
+= 必须是一个整形数
-= 必须是一个整形数
比较运算
==
!=
>
<
>=
<=
自增自减
p++; p = p + 1;
++p; p = p + 1;
--p;
p--;
void test1(){
//算数运算
int nums[5] = {1,2,3,4,5};
int * pointer1 = nums;
int * pointer2 = &nums[4];
size_t size = pointer2 - pointer1;
printf("%lu\n",size);//输出4
}
void test2(){
//赋值运算
int nums[] = {1,2,3,4,5};
int *p = nums;
p += 2;
p = p + 2;
p -= 1;
printf("%d\n",*p);//输出4
}
int main(int argc, const char * argv[]) {
//关系运算
int nums[] = {1,2,3,4,5};//创建一个数组
int *p = nums;//指针指向一个数组,指向的是数组首元素的地址,指向1
printf("%p\n",p);//地址0x7fff5fbff760
printf("%d\n",*p);//打印1
p++; //int类型的p++使它增加了4字节,使p指向2
printf("%p\n",p);//地址0x7fff5fbff764
printf("%d\n",*p);//打印2
int result = nums == p; //比较的是他们的地址,p现在指向的是2,所以打印0
printf("%d\n",result);
return 0;
}
相关文章推荐
- 黑客技术之:WIFI破解
- 网络层:指引
- 杂记
- win7 tcp/ip4属性按钮灰色,无法修改IP的解决方案
- 解决异常java.lang.NoSuchMethodError: org.springframework.aop.scope.ScopedProxyUtils.isScopedTarget
- 转载:《TypeScript 中文入门教程》 12、类型推导
- Ext js 新知识:grid.getSelectionModel()
- jquery基础
- 安装OpenResty
- MYSQL 性能优化
- 【敏捷软件开发】读书笔记 中文序和代序
- 幻方(奇数阶&&4*n阶&&4*n+2阶)
- C++下遍历文件夹内文件
- android 4.4以上系统文档和图库裁剪图片加载异常的处理
- HDU1818 Floyd 最短路问题(模板)简单题
- LeetCode Valid Palindrome
- css①字体颜色正常显示,背景透明②字体颜色与背景均为透明的设置方法
- javascript基础
- java 打包zip文件
- 转载:《TypeScript 中文入门教程》 11、声明合并