c指针点滴三(指针运算)
Posted L的存在
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c指针点滴三(指针运算)相关的知识,希望对你有一定的参考价值。
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 void main3() 5 { 6 int num = 89; 7 int *p = # 8 p++;//不可预测的值 指针++就是按照指针的类型大小前进一个类型的大小 9 //如果是int就前进4个 10 printf("%d",*p);//指针++只有在数组才有意义 11 } 12 13 //void main4() 14 //{ 15 // int a[5]; 16 // int i = 0; 17 // printf("%p",a); 18 // 19 // for(int *p=a;p<a+5;p++)//切记 指针++ 是移动sizeof指针类型的字节 20 // { 21 // *p = i;//对指针指向的值赋值 22 // i++; 23 // } 24 // system("pause"); 25 //} 26 27 void main5() 28 { 29 int a[5] = {1,2,3,4,5}; 30 int *p5 = &a[2]; 31 printf("%d",a[2]); 32 p5 = p5+ 2;//相当于在数组内部向后移动两个元素的大小 33 34 //double *p = 0x300400 35 //p = p+2 0x300416 36 printf("\n%d",*p5);//5 &a[4] 37 getchar(); 38 } 39 40 void main6() 41 { 42 double num = 10; 43 double *p = # 44 p = p-465436;//指针的加减法只能在数组有意义 而且容易越界 45 //一个exe不能读写其他exe 46 printf("%f",*p); 47 } 48
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 //判断两个指针是否相等 就看是否指向同一个地址 5 void main() 6 { 7 int num = 32; 8 int *p = # 9 int *p1 = # 10 if(p1==p2) 11 { 12 printf("指向同一个女人是情敌"); 13 }else 14 { 15 printf("不是情敌了"); 16 } 17 }
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 //指针的赋值运算 一般就是传递地址 5 //根据地址改变内容 6 void main4() 7 { 8 int num = 10; 9 int *p = # 10 printf("\n%p,%p",p,&num);//一样 11 12 *p = 4; 13 printf("\n%d",num); 14 15 int *px = p; 16 *px = 3; 17 printf("\n%d",num);//同样等价操作num 18 19 system("pause"); 20 }
1 #include <stdio.h> 2 #include <stdlib.h> 3 void main4() 4 { 5 int a[10]={1,2,3,4,5,6,7,8,9,0}; 6 int i; 7 printf("\n%d",*(a+4));//5 &a[4] 8 9 getchar(); 10 11 } 12 void main3() 13 { 14 int a[10]={1,2,3,4,5,6,7,8,9,0}; 15 int i; 16 printf("%x",a);//被编译器为首地址 17 18 //此处断电查看数组元素 19 for(i=0;i<10;i++) 20 { 21 printf("\n%d,%d",a[i],*(a+i)); 22 printf("%x,%x",&a[i],a+i);//等价关系 23 } 24 25 //指针遍历 26 for(int *p=a;p<a+10;p++) 27 { 28 *p = *p - 1; 29 printf("\n%d,%x",*p,p); 30 } 31 getchar(); 32 } 33 void main2() 34 { 35 int num = 10; 36 int *p1 = #//地址的赋值 37 int *p2 = p1;//指针的赋值 38 39 *p2 = 3; 40 printf("%d,%d,%d",num,*p1,*p2);//全是3 41 } 42 void main1() 43 { 44 int num = 10; 45 //int *p = a; 46 //*p = a;//整数和指针最好不要直接运算 c只是警告 但是c++一定报错 47 48 }
以上是关于c指针点滴三(指针运算)的主要内容,如果未能解决你的问题,请参考以下文章