C语言 *p 和p的区别?
13个回答
展开全部
第一个:p为带回一个指针的函数,该指针指向double型数据,第二个:p是指向函数的指针,该函数返回double型值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
P是指一个变量,它代表一个数值,*P则代表一个地址
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void ergod(void (*doit)(int)) {
int i;
for (i = 0; i < 10; i++){
doit(i);
}
}
void printA(int a){
printf("a:%d\n",a);
}
void printB(int a){
printf("b:%d\n",a);
}
int main(){
//ergod(printA);
ergod(printB);
return 0;
}
这是一个函数指针的应用
运行时根据你传的不同的函数指针而执行的不同的操作
打印出
b:0
b:1
b:2
b:3
b:4
b:5
b:6
b:7
b:8
b:9
int i;
for (i = 0; i < 10; i++){
doit(i);
}
}
void printA(int a){
printf("a:%d\n",a);
}
void printB(int a){
printf("b:%d\n",a);
}
int main(){
//ergod(printA);
ergod(printB);
return 0;
}
这是一个函数指针的应用
运行时根据你传的不同的函数指针而执行的不同的操作
打印出
b:0
b:1
b:2
b:3
b:4
b:5
b:6
b:7
b:8
b:9
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
借用一楼的回答,打印的时候,你可以参照下述打印,可能你就明白了。
int x = 3;
int *p, *q;
p = &x, q = &x;
printf("p=%p,p=%d\n", p, *p);
printf("%d\n", *p++);
printf("p=%p,p=%d\n", p, *p);
printf("-----\n");
printf("%d\n", (*q)++);
printf("%d\n", x);
你打印的结果应该是:
p=某地址,p=3
Q=3
p=某地址+4/8(根据系统位数是4或者8),p=随机值
-----
Q=3
Q=4
int x = 3;
int *p, *q;
p = &x, q = &x;
printf("p=%p,p=%d\n", p, *p);
printf("%d\n", *p++);
printf("p=%p,p=%d\n", p, *p);
printf("-----\n");
printf("%d\n", (*q)++);
printf("%d\n", x);
你打印的结果应该是:
p=某地址,p=3
Q=3
p=某地址+4/8(根据系统位数是4或者8),p=随机值
-----
Q=3
Q=4
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
加型号的在线语言中C语言中是指嗯指针,指针型变量不加型号的是普通的变量
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询