C语言基础---指针

本文详细探讨了C语言中的指针,包括野指针及其危害、const修饰符的作用、指针作为函数参数、宏定义的用法以及数组与指针的关系。通过实例解析了指针的前缀增量、后缀增量以及指针与字符串的操作,帮助读者深入理解C语言指针的本质。
摘要由CSDN通过智能技术生成
一、没有目标的指针(野指针),如:
  int *p;
  printf("p= %p\n",p);
野指针的危害:
1、指向操作系统的内核区,禁止访问;
2、指向一个没有使用的内存,指针解引用合法;
3、指向一个可用地址,但是此刻被其他的程序所使用,会引发错误(能运行,但导致结果错误)

二、const修饰作用:修饰的是就近原则,修饰就近的一个类型
1、const int *p1; int *p1里面的变量包括有 p1和p1指向的变量(int),隐含变量
const修饰的是int所包含的隐含变量
2、int const *p2;
修饰的也是p2指向的隐含变量
3、int * const p3;
修饰的是p3;


4、输出型参数:调用函数,改变内存中的值
void func(int *p)
{
*p = 33;


}
int main(void)
{
int n = 1;
printf("n in yuanshi%p.\n",&n);
printf("%d.\n",n);
int *p_n = &n;
func(p_n);
printf("%d.\n",n);
printf("n in func%p",&n);
return 0;
}
5、输入型参数:const修饰的变量
6、传值调用:运用的是地址的唯一性!!实质还是传值调用,只不过是地址罢了
#include<stdio.h>
void swap(int *a, int *b)
{
int temp = 0;
temp = *a;//*a访问的是x里面的内容 
*a = *b;
*b = temp;

}
int main(void)
{
int x = 33, y = 44;
printf("x = %d y = %d.\n",x,y);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值