pragma mark 指针-基本概念
pragma mark 概念
/**
指针就是用来保存地址的
1.什么是地址
生活中的地址
北京市朝阳区朝阳区大悦城8楼肯德基
*/
pragma mark 代码
#include <stdio.h>
// 基本数据类型作为函数的参数是值传递,在函数中修改形参的值不会影响到外面实参的值
void change (int value) // int value = 10;
{
value = 22;
printf("我执行了\n");
}
// 数组作为函数的参数是地址传递,如果是地址传递在函数中修改形参的值会影响外面实参的值
void change2 (int values[])
{
values[1] = 99;
printf("哥执行了\n");
}
// 指针就是专门用于保存地址的
void change3(int *p) // 用什么接收地址 指针 = 0ffc01 int *p = &num
{
*p = 88;
printf("哥执行了\n");
}
int main()
{
#warning 值传递
/*
// 需求:定义一个函数,在函数中修改传入的实参的值
int num = 10;
printf("修改前:num = %i\n",num);
change(num);
printf("修改后:num = %i\n",num);
*/
#warning 数组传递(指针传递)__(地址传递)
/*
int nums[] = {1,3};
printf("修改前:num = %i\n",nums[1]);
change2(nums);
printf("修改后:num = %i\n",nums[1]);
*/
#warning 指针知识
int num = 10;
// *p == num
printf("修改前:num = %i\n",num);
change3(&num);
printf("修改后:num = %i\n",num);
#warning 1.指针变量定义
/*
如何定义指针变量
普通变量:
数据类型 变量名称
指针变量:
数据类型 * 变量名称;
数据类型 : 说明将来指针变量能够保存什么类型的变量的地址
注意 : 指针变量是什么类型,那么将来就只能保存什么类型变量的地址,
例如 指针变量是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);
// 千万注意 : 指针变量只能存储地址
// 通过指针变量 赋值
// 指针变量前的*号代表访问指针变量指向的那一块存储空间
// *p == num
// num = 20;
*p = 33;
printf("num = %i\n",*p);
*/
return 0;
}