一、概念
/*
如何定义指针变量
普通变量
数据类型 变量名称;
指针变量
数据类型 * 变量名称;
数据类型 : 说明 将来指针变量能够保存 什么类型的变量的地址
注意 : 指针变量是什么类型 : 那么将来就只能保存什么类型的变量的地址
例如 : 指针变量是int, 那么将来就只能保存 int类型变量的地址
* : 没有任何特殊含义, 仅仅是为了标识 这是一个指针变量
变量名称 : 用于区分不同的变量
int num; // 普通变量 num = 10;
int * p; // 指针 , 在64位的编译器下 占用8个字节
p = # // 将num的地址 存储到p这个地址中
(重点 : p = &num --- *p == num)
*/
二、代码
#include <stdio.h>
// 基本数据类型 作为函数的参数 是值传递, 在函数中修改形参的值 不会影响到 外面实参的值
void change(int vlaue)
{
vlaue = 55;
}
// 数组作为函数的参数 是地址传递,如果是地址传递 在函数中修改 形参的值 会改变影响到外面实参的值
void change2(int vlaue[])
{
vlaue[1] = 55;
}
#pragma 指针
// 指针就是专门用于保存地址的
void change3(int *p) //用什么接收地址? 指针 = 0ffc12
{
*p = 33;
}
int main()
{
#pragma 1.需求 : 定义一个方法,在方法中修改传入的实参的值
/*
// int num = 10;
int num[] = {1,3};
printf("修改前 num = %i\n",num[1]);
change2(num);
printf("修改后 num = %i\n",num[1]);
*/
int num = 10;
printf(" 前 num = %i\n",num);
change3(&num);
printf(" 后 num = %i\n",num);
/*
如何定义指针变量
普通变量
数据类型 变量名称;
指针变量
数据类型 * 变量名称;
数据类型 : 说明 将来指针变量能够保存 什么类型的变量的地址
注意 : 指针变量是什么类型 : 那么将来就只能保存什么类型的变量的地址
例如 : 指针变量是int, 那么将来就只能保存 int类型变量的地址
* : 没有任何特殊含义, 仅仅是为了标识 这是一个指针变量
变量名称 : 用于区分不同的变量
*/
/*
int num; // 普通变量
num = 10;
int * p; // 指针 , 在64位的编译器下 占用8个字节
// 千万注意 : 指针变量 只能存储地址
p = # // 将num的地址 存储到p这个地址中
// p = &num
printf("num = %p\n",&num);
printf("p = %p\n",p);
// 指针变量前的 *号 代表访问指针变量 指向的那一块存储空间(num)
// *p == num
*p = 55;
// printf("num = %i\n",num);
printf("num = %i\n",*p);
*/
return 0;
}
网友评论