c指针点滴三(指针运算)
#include <stdio.h>
#include <stdlib.h> void main3()
{
int num = ;
int *p = #
p++;//不可预测的值 指针++就是按照指针的类型大小前进一个类型的大小
//如果是int就前进4个
printf("%d",*p);//指针++只有在数组才有意义
} //void main4()
//{
// int a[5];
// int i = 0;
// printf("%p",a);
//
// for(int *p=a;p<a+5;p++)//切记 指针++ 是移动sizeof指针类型的字节
// {
// *p = i;//对指针指向的值赋值
// i++;
// }
// system("pause");
//} void main5()
{
int a[] = {,,,,};
int *p5 = &a[];
printf("%d",a[]);
p5 = p5+ ;//相当于在数组内部向后移动两个元素的大小 //double *p = 0x300400
//p = p+2 0x300416
printf("\n%d",*p5);//5 &a[4]
getchar();
} void main6()
{
double num = ;
double *p = #
p = p-;//指针的加减法只能在数组有意义 而且容易越界
//一个exe不能读写其他exe
printf("%f",*p);
}
#include <stdio.h>
#include <stdlib.h> //判断两个指针是否相等 就看是否指向同一个地址
void main()
{
int num = ;
int *p = #
int *p1 = #
if(p1==p2)
{
printf("指向同一个女人是情敌");
}else
{
printf("不是情敌了");
}
}
#include <stdio.h>
#include <stdlib.h> //指针的赋值运算 一般就是传递地址
//根据地址改变内容
void main4()
{
int num = ;
int *p = #
printf("\n%p,%p",p,&num);//一样 *p = ;
printf("\n%d",num); int *px = p;
*px = ;
printf("\n%d",num);//同样等价操作num system("pause");
}
#include <stdio.h>
#include <stdlib.h>
void main4()
{
int a[]={,,,,,,,,,};
int i;
printf("\n%d",*(a+));//5 &a[4] getchar(); }
void main3()
{
int a[]={,,,,,,,,,};
int i;
printf("%x",a);//被编译器为首地址 //此处断电查看数组元素
for(i=;i<;i++)
{
printf("\n%d,%d",a[i],*(a+i));
printf("%x,%x",&a[i],a+i);//等价关系
} //指针遍历
for(int *p=a;p<a+;p++)
{
*p = *p - ;
printf("\n%d,%x",*p,p);
}
getchar();
}
void main2()
{
int num = ;
int *p1 = #//地址的赋值
int *p2 = p1;//指针的赋值 *p2 = ;
printf("%d,%d,%d",num,*p1,*p2);//全是3
}
void main1()
{
int num = ;
//int *p = a;
//*p = a;//整数和指针最好不要直接运算 c只是警告 但是c++一定报错 }
c指针点滴三(指针运算)的更多相关文章
- const 指针的三种使用方式
///////////////////////const 指针的三种状态///////////////////// 注意:const 的前后顺序 const 在类型之前 ---可以修改指针包含的地址, ...
- [C和指针]第三部分
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- C++指针的操作和运算(转)
既然指针是一种数据类型,那么它也应该有对应的操作或运算,正如整数能做加减乘除一样.但是每一种操作或运算都应该对这种数据类型有意义.比如两个实数可以用关系运算得知哪个大哪个小,而两个虚数却不能使用关系运 ...
- Android For JNI(三)——C的指针,指针变量,指针常见错误,值传递,引用传递,返回多个值
Android For JNI(三)--C的指针,指针变量,指针常见错误,值传递,引用传递,返回多个值 C中比较难的这一块,大概就是指针了,所以大家还是多翻阅一下资料,当然,如果只是想了解一下,看本篇 ...
- void *指针的加减运算
1.手工写了一个程序验证void *指针加减运算移动几个字节: //本程序验证空类型指针减1移动几个字节 #include <stdio.h> int main(int argc, cha ...
- C语言中指针的加减运算
参考文章,值得一看 char arr[3]; printf("arr:\n%d\n%d\n%d\n", arr, arr + 1, arr + 2); char *parr[3]; ...
- C语言提高 (3) 第三天 二级指针的三种模型 栈上指针数组、栈上二维数组、堆上开辟空间
1 作业讲解 指针间接操作的三个必要条件 两个变量 其中一个是指针 建立关联:用一个指针指向另一个地址 * 简述sizeof和strlen的区别 strlen求字符串长度,字符数组到’\0’就结束 s ...
- PCL智能指针疑云 <三> 智能指针作为函数的传值参数和传引用参数
一 函数的参数传递可以简单分类为“传值”和“传引用”. 声明函数时,形参带引用“&”,则函数调用时,是把实参所在的内存直接传给函数所开辟的栈内存.在函数内对形参的修改相当于对实参也进行修改. ...
- [LeetCode题解]86. 分隔链表 | 三指针 + 虚拟头节点
解题思路 三指针,一个指向前半部分待插入位置,一个指向后半部分待插入位置,最后一个从前往后遍历 代码 /** * Definition for singly-linked list. * public ...
随机推荐
- 为什么要使用Nginx?
这里做了些基准测试表明nginx打败了其它的轻量级的web服务器和代理服务器,同样也赢了相对不是那么轻量级的产品. 有人说这些基准测试是不准确的,因为在这样那样的环境下,做的比较不一致.我倾向同意基准 ...
- window+Apache 配置虚拟主机(2)
1. 打开虚拟主机功能 2. 设置虚拟主机相应的文件夹 3. 将虚拟的域名绑定到127.0.0.1 4. 结果图: 记忆一下,突然感觉都忘记了!
- redis 源代码分析(一) 内存管理
一,redis内存管理介绍 redis是一个基于内存的key-value的数据库,其内存管理是很重要的,为了屏蔽不同平台之间的差异,以及统计内存占用量等,redis对内存分配函数进行了一层封装,程序中 ...
- 一个安全测试的CheckList
转自:http://hi.baidu.com/dontcry/item/90c2bc466558c217886d1075 不登录系统,直接输入登录后的页面的URL是否可以访问: 不登录系统,直接输入下 ...
- [置顶] Linux协议栈代码阅读笔记(一)
Linux协议栈代码阅读笔记(一) (基于linux-2.6.21.7) (一)用户态通过诸如下面的C库函数访问协议栈服务 int socket(int domain, int type, int p ...
- [React] React Router: Querystring Parameters
Define query param in Link, accept path and query : const Links = () => <nav > <Link to= ...
- swift 实现漂亮的粒子效果CAEmitterLayer
一些粒子效果 我们经常会在一些游戏或者应用中看到一些炫酷的粒子效果,我们在iOS中也能很轻松的搞一些粒子效果 我们本次做得是一个下雪的效果,看下效果图 源码地址: https://github.com ...
- Python-elementTree方法解析xml文件-01
[XML基本概念介绍] XML 指可扩展标记语言(eXtensible Markup Language). XML 被设计用来传输和存储数据.概念一: <foo> # foo元素的起始标签 ...
- 在MVC中如何愉快使用Ajax
前言: 这个故事要从我老大与客户谈需求开始说起.前几天,遇见一个逗比客户,不知道是听了哪个逗比程序员的临终遗言...让我们给他做一个手机端的Web应用出来,还说要使用MVC来做(不是App).马币,客 ...
- 读取oracle页面或者进程卡住不动(死锁)
oracle最坑爹的地方:你insert update delete之后 或者kill死锁的时候记得一定要提交事务不然就是死锁卡在那里了 记住 kill死锁也是要提交事务的 select * ...