如果去掉q,*p为6 否则整个程序会崩溃,因为q指向的地址是NULL,无法进行复制操作。
n是变量,p是指向变量n的指针,至于q是指针的指针。p表示引用指针所指向的存储单元,即等价于n,所以*p=5等价于n=5...q指向p,*q等价于p,所以**q等价于n。。。
while (*q) *p ++ = *q ++;*p = '0';//while (*q)中,*q是用于判断q指向的是否为字符串结尾(结尾处值为0),结尾将跳出循环//p ++解释:p值自增一次,但是其返回的结果(返回值)是原来的值。例如b = 4, a = b++;a的值为4,但b的值为5(ab都是int型);//*p ++ = *q...
include<stdio.h> void fun(int *a,int *b){ int *c;c=a;a=b;b=c;} main(){ int x=3,y=5,*p=&x,*q=&y;fun(p,q);printf("%d,",*p,*q);fun(&x,&y);printf("%d,%d\n",*p,*q);return 0;}
具体是这样的#include<stdio.h>voidch(int*a,int*b){intc;c=*a;*a=b;*b=c;}voidmain(){staticinta[10]={32,5,18,56,98,52,78,15,132,112};intx=0,y=1,i;if(a[x]>a[y])ch(&x,&y);for(i... 具体是这样的#include <stdio.h> void ch(int *a,int *b) { int c; c=*a;...
int*p,*q,k=5,j=6;q=&k; //q指针指向k的地址,k那个地址里存的就是5 p=q;//p和q指向同一个地址 q=&j;//然后q又指向j的地址了 printf("%d",*p);//p指向的是k的地址,*p就是取p的地址的值,也就是k的地址的值5~
p=a[0]=0 q=a[3]=6 结果为0+6=6
int n=(*p)++; //p指针指的单元中的内容加1,即44+1=45而n得到的是旧值,n=44 int * q=p-1; //q得到p的上一个单元的地址 r=*(--p)+1; ++*q;//r中的地址改变,把p上一个单元内容加1作为地址,而q指向单元的内容加1 因此m=44,n=44,&m=p,*p=45,r=p,*q=p-1 这里&...
D寸p指向地址。p=&n可以。n为整形数,不是地址