// #include<stdio.h> int main() { int *p,i=2;//int*为整形 类型要一致 p=&i; int j,*g=&j;//指针是一个数值为内存地址的变量 /*声明int* 是一个指针类型,是一个整形变量的地址,是内存单元的编号; 1首先p保存了i的地址p指向i; 2.p不是i,i也不是p修改p的值不会改变i,修改i也不会改变p,是两个 不同的变量. 3.如果一个指针变量指向了一个普通变量则*指针变量就等同于普通变量. 4.* 为取出p里面存放的地址所指向的地址里面的内容 5.地址就是内存单元的编号 i与p的相互改变不会改变对方的值除非是加了* /* 表示复杂的数据结构 快速传递数据 是函数返回一个以上的值 直接访问内存 方便的处理字符串 是理解面向对象引用的基础 */ /* 指针分类 1基本类型的指针 2指针和数组 3指针和函数 4指针和结构体 5多级指针 */ /*cpu 处理内存 条三根线 控制 数据 地址 线 内- >c->内*/ /* 32位32根地址总线 2的32次方个字节 地址编号0=4G-1; 指针只能做的四则运算中的减法 */ }
#include<stdio.h> int main() { int i=5;/* int i;定义 I=5;初始化*/ int *p; int *q; p=&i; /* *q=p */语法错误/* int* 跟int类型不一样 */ /* *q=*p */ q未分配内存地址 /* p=q; */q是一个垃圾值 /* *q=*p */木有分配地址 }
时间: 2024-10-18 06:43:27