int *p1,*p2; p1=(int *)malloc(10); p2=p1+2; printf("p1=0x%x,p2=ox%x",p1,p2); 程序运行后结果p1=0x50求p2=?

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/04 13:09:24
int *p1,*p2; p1=(int *)malloc(10); p2=p1+2; printf(

int *p1,*p2; p1=(int *)malloc(10); p2=p1+2; printf("p1=0x%x,p2=ox%x",p1,p2); 程序运行后结果p1=0x50求p2=?
int *p1,*p2; p1=(int *)malloc(10); p2=p1+2; printf("p1=0x%x,p2=ox%x",p1,p2); 程序运行后结果p1=0x50
求p2=?

int *p1,*p2; p1=(int *)malloc(10); p2=p1+2; printf("p1=0x%x,p2=ox%x",p1,p2); 程序运行后结果p1=0x50求p2=?
首先定义两int型指针
其次开辟10个字节的内存空间,函数返回值是int*(其实这里有强制转换的概念)
再有p2=p1+2,这里2可以说是地址偏移量,但是这里的2不是2个字节,而是2*(sizeof(int))个字节,因为p1,p2指向的是int型的数据,如果P1输出是0x50,则P2为0x58,(0x54)//

int *p1,*p2; 与 int *p1,p2 swap(int *p1,int *p2) {int temp; temp=*p1; *p1=*p2; *p2=temp; } main() { int a,b; int *pointer_1,*pswap(int *p1,int *p2){int temp;temp=*p1;*p1=*p2;*p2=temp;}main(){ int a,b;int *pointer_1,*pointer_2;scanf(%d,%d,&a,&b);pointer_1=&a;pointer_2=&b;if(a int*p,*p1,*p2,*p=*p1,*p1=*p2,*p2=*p3哪里有错.另外p=p1,p1=p2,p2=p3呢 int a,b,*p1*p2; 请问 p1=&a和*p1=a有什么区别? int (*p1)( // p2 = &p1;为什么不对呢?int val = 0; int* p1 = &val; int** p2 = NULL; // p2 = &p1; 看下面:void Swap(int *p1,int *p2) { int *p; p = p1; p1 = p2; p2 = p; } 指针的用法错在哪? int *p1,*p2; p1=(int *)malloc(10); p2=p1+2; printf(p1=0x%x,p2=ox%x,p1,p2); 程序运行后结果p1=0x50求p2=? void fun(char *w,int m) {char s,*p1,*p2;p1=w;p2=w+m-1;#include#includevoid fun (char*w,int m){char s,*p1,*p2;p1=w;p2=w+m-1;while(p1 C语言 int *p,*p1,*p2; int a=5,b=3; p1=&5; p2=&3; *p = *p1; // 这里为什么段错误 p1=p2; \p1 的指针指向 p2,意味着p2值改变,p1值也改变 p1=p2;\我想是p1指向改变了,即p1不再指向原变量的地址,改为指向p2所指向的地址.那为什么p2的值也会变呢?#include void swap(int *p1,int *p2){int *t;t=* #includevoid main(){int *p1,*p2,a[5]={1,3,5,7,9};for(p1=a;p1 main() { int x=10; int *p1=&x,*p2; p2=p1; printf(%d ,*p2) }这里的 *P1=&x ; 是P1指向的内容为X的地址还是 *P1就是X的值 为10 帮忙看一段程序,我不知道每一步的意思#include#include#includeint m=1;void swap(int *p1,int *p2){ int temp; temp=*p1; *p1=*p2; *p2=temp;}void fill(int *p1,int *p2,int len,int n){ if(len==n-1) { output( void main() { int i=50,j=60,*p1=&i,*p2=&j; *p1++; printf(%d ,*p1); (*p1)++; printf(%d ,*p1);为什么不是书上的60,61呢,是不是哪里出错了?void main(){int ARRAY[]={50,60};int *p1=&ARRAY[0],*p2=&ARRAY[1];*p1++;printf(%d ,*p1);(*p1) C语言,若有说明:int *p1,*p2,m=5,n; 以下是正确赋值语句的选项是若有说明:int *p1,*p2,m=5,n; 以下是正确赋值语句的选项是(A) p1=&m;p2=&p1;(B)p1=&m;p2=&n; *p1= *p2;(C) p1=&m;p2=p1; (D) p1=&m; *p2 = *p1 ; c语言作业(*p &n)用法1.Study the following section of C code:int n1 = 2,n2 = 5,n3[ ] = {3,4,5,6,7};int* p1 = &n1;int * p2 = n3;*p2 = (*p1)++ + *(p2) ; p2 = &n3[3];n1 = *p1 + *(p2) + *(&n2); p1 = &n3[4];What are the values of *p1,*p2,n1,n2 an #include#includevoid fun (char *w,int n){char s,*p1,*p2;p1=w;p2=w+m-1;while(p1