【笔记】【C语言】第八章 善于利用指针
作者:互联网
8.1 地址和指针
(1)地址:
内存区的每一个字节有一个编号,这就是“地址“。如果在程序中定义了一个变量,在编译时,系统会给这个变量分配内存单元。
(2)直接访问:
按变量地址存取变量值。
scanf("%d",&x); printf("%d",x); k=a+b;
(3)间接访问:
将变量i的地址,存放在另一个变量中。
在访问的时候,先找到i_pointer,从中取出 i 的地址(2000),然后找到2000,2001的字节,取出 i 的值。
(4)指针:
一个变量的地址,称为该变量的指针。
如果有一个变量专门用来存放另一变量的地址(指针),则这个变量称为“指针变量”。
it = &x ;
(5)变量的指针
(6)指向变量的指针变量
8.2 定义一个指针变量
(1)定义一般形式:
基类型 *指针变量名
float a; float *it_1 = &a;
(2)* 表示该变量的类型为 指针型变量 。
指针变量名是it_1.
(3)必须指定基类型。
(4)指针变量只能存放地址,不可以直接给他赋值某个整数
(5)引用:
printf("%d",*it );
指针运算:
(6)&*it
从右向左进行结合。 *it 就变量a。
…&*it 则是 &a。
(7)*&it
&a是a的地址,*&a则是&a所指向的变量,也就是a
(8)(*it )++
相当于a++
(9)*(it++)
先做*it运算,得到a。整体相当于a++
8.3 数组与指针
(1)数组元素的指针:就是数组元素的地址。
int a[10]; int *p = &a[0];
(2)引用一个数组元素:
下标法:如a[i]
指针法:如*(a+i)或*(p+i)
(3)用数组名作函数参数,编译时是将arr按指针变量处理的。
实参——数组名或指针变量
形参——指针变量或数组名。以下两种写法实际相同。
void f(int arr[],int n) { } void f(int *arr,int n) { }
C语言调用函数时虚实结合的方法,都是采用“值传递”方式,
当用变量名作为函数参数时传递的是变量的值,当用数组名作为函数参数时,传递的值是地址。
(4)多维数组的地址
标签:变量,int,数组名,第八章,C语言,++,地址,指针 来源: https://www.cnblogs.com/xwww666666/p/16203878.html