C语言指针使用常见问题
2024-01-01 20:55:47
1.*p++:
#include<stdio.h>
int main()
{
char s[ ]="159",*p;
p=s;
printf("%c",*p++);
printf("%c",*p++);
return 0;
}
输出:15
注意点:根据符号的优先级,*p++与*(p++)可以等价
2.指针的初始化:
#include<stdio.h>
int main()
{
int *a, b=3;
*a=b;
printf("%d",*a) ;
}
该程序实际上无法执行,因为指针未初始化。正确语法应该为
a=&b;
3.指针与其指向的变量之间的关系:
#include<stdio.h>
int main(void)
{
int x[5] = { 2, 4, 6, 8, 10 }, *p, **pp;
p = x;
pp = &p;
printf("%d ", *(p++)); /* 数字后有一个空格 */
printf("%d\n", **pp);
return 0;
}
输出:2 4
在输出**pp时,由于pp指向的变量为指针p,由于此时p已经指向数组的第二个元素,所以输出应该为数组的第二个元素。也就是说pp的值是p的地址,故*pp=p,因而**pp=*p=4。
4.指针与数组名之间的关系:
# include <stdio.h>
int main(void)
{
int a[10] = {0,1,2,3,4,5,6,7,8,9}, *p = a+3;
printf("%d", p[2]);
return 0;
}
输出:5
数组名本身也是一个指针
文章来源:https://blog.csdn.net/Xm041206/article/details/135327915
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!