指针是c语言的灵魂,也是学习中的难点,简单的理解指针其实就是地址。
一、 指针变量的定义
1. 定义的格式
类名标识符 *指针变量名;
int *p;
2. 先定义后赋值
简单取值
int a = 10;
int *p;
p = &a;
printf(“%d”, *p);
简单改值
*p = 9;
3. 定义的同时赋值
int a = 10;
int *p = &a;
4. 实现修改实参
5. 注意点
int *p; p = 1000;
int *p; *p = 100;
int *p; *p = &a;
%p输出指针里面存储的地址值
其他指针类型说明,比如float *p; char *p;
不能乱用类型,比如int a = 10; float *p = &a;
6. 清空指针
p = 0;
p = NULL;
#include <stdio.h>
void change(int);
int main()
{
/*
int a = 90;
change(&a);
printf("a=%d\n", a);
*/
// 变量类型 变量名;
// 格式:变量类型 *变量名;
// 定义了一个指针变量p
// 指针变量只能存储地址
// 指针就一个作用:能够根据一个地址值,访问对应的存储空间
// 指针变量p前面的int:指针变量p只能指向int类型的数据
int *p;
int a = 90;
// 指针变量p指向了变量a
p = &a;
*p = 10;
a = 20;
printf("%d\n", *p);
//printf("%d\n", a);
return 0;
}
void change(int n)
{
n = 10;
}
使用指针时需要注意的问题,如代码演示:
#include <stdio.h>
int main()
{
/* 不建议的写法, int *p只能指向int类型的数据
int *p;
double d = 10.0;
p = &d;*/
/* 指针变量只能存储地址
int *p;
p = 200;
*/
/* 指针变量未经过初始化,不要拿来间接访问其他存储空间
int *p;
printf("%d\n", *p);
*/
int a = 10;
/*
int a;
a = 10;
*/
/*
int *p;
p = &a;
<