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 ...
随机推荐
- [实战]挖掘CSRF姿势
[-]CSRF是个什么鬼? |___简单的理解: |----攻击者盗用了你的身份,以你的名义进行某些非法操作.CSRF能够使用你的账户发送邮件,获取你的敏感信息,甚至盗走你的财产. |___CSRF攻 ...
- Wamp集成环境配置多站点
一.打开apache配置文件httpd.conf 二.修改httpd.conf配置文件 1.在配置文件httpd.conf中搜索 conf/extra/httpd-vhosts.conf,然后将该行代 ...
- 浅析NSTimer & CADisplayLink内存泄露
偶得前言 NSRunLoop与定时器 - invalidate的作用 我们如何解决? 偶得前言 本篇文章中我们主要谈谈NSTimer\CADisplayLink在使用过程中牵扯到内存泄露的相关问题及解 ...
- php form表单post提交获取不到数据,而使用get提交能获取到数据 的解决办法
开发环境:xampp,mac,phpstorm 其实出现这个问题的原因就是在于phpstorm,它默认使用的是自带的内部服务器,这个服务器使用63342端口,而且服务器内部有问题,导致POST方法异常 ...
- android后台截屏实现(1)--源码编译
前段时间接到任务要实现后台截图并上传的功能,在网上查了好久,发现遇到这类问题的人还不少.经过一番对比后发现还是修改并编译源码中的screencap类然后通过JNI来调用这种方法比较可靠,而其他的在ja ...
- 判断是否是IP地址
static bool IsIP(QString IP) { QRegExp RegExp("((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\ ...
- PHP页面之间跳转方法总结
编程中,在页面之间进行跳转是必须的.这里列出了三种办法,供参考. 一.用HTTP头信息 也就是用PHP的HEADER函数.PHP里的HEADER函数的作用就是向浏览器发出由HTTP协议规定的本来应该通 ...
- div与span
div与span的区别: div标签属于块级元素,span标签属于行内元素,使用对比效果如下: <!DOCTYPE html> <html> <head lang=&qu ...
- JavaWeb三大组件(Servlet,Filter,Listener 自己整理,初学者可以借鉴一下)
JavaWeb三大组件(Servlet,Filter,Listener 自己整理,初学者可以借鉴一下) Reference
- Sql省市三级联动一张表
CREATE TABLE [dbo].[region]( [region_id] [int] NULL, [region_name] [varchar](50) COLLATE Chinese_PRC ...