指针变量赋值 注意 在使用指针变量之前,必须要给指针变量赋值。 若不赋值,则指针变量的值是一个随机值。这种 情况必须要避免! ●可以使用空值NULL初始化指针变量 ●例:inta=10,b=2; nt *p P NULL; 803803C &a 10 803A 变量a变量b变量p 电子科技大学通信与信息工程学院
电子科技大学通信与信息工程学院 指针变量赋值 ⚫ 注意: ⚫ 在使用指针变量之前,必须要给指针变量赋值。 若不赋值,则指针变量的值是一个随机值。这种 情况必须要避免! ⚫ 可以使用空值NULL初始化指针变量 ⚫ 例: int a=10,b=2; int *p; p = NULL; p = &a; 803A 变量a 变量p 803C 变量b 10 2 NULL 2000 83A
指针变量的引用 ●两个与指针相关的运算符:*(指针运算符,间 接访问运算符),&(取址运算符) 格式: &任意变量;品表示交量a所占据的内存空间的首地址 ●*指针变量;表示指针变单所指向的内存空间的数据 例: ●inta=2,"p; p=&a;/“&a表示整型交量a在内存中的地址 b=*p+2;∧表达式中,为表示指针交单p所指向 内存单元中的数据(=2 电子科技大学通信与信息工程学院
电子科技大学通信与信息工程学院 指针变量的引用 ⚫ 两个与指针相关的运算符:*(指针运算符,间 接访问运算符),&(取址运算符) ⚫ 格式: ⚫ &任意变量;&a表示变量a所占据的内存空间的首地址 ⚫ *指针变量; *p表示指针变量p所指向的内存空间的数据 ⚫ 例: ⚫ int a = 2, *p; p = &a; /*&a表示整型变量a在内存中的地址*/ b = *p + 2; /*表达式中,*p表示指针变量p所指向 内存单元中的数据(*p=2)*/
指针变量的引用 ●指针变量的常见操作: ●将指针变量指向被访问的变量 例:intn1=12,n2,'p; p=&n1; ●读指针指向的变量 例:n2=p; printf( %d", *p) 写指针指向的变量 ●例:tp=100;/n1=100* 电子科技大学通信与信息工程学院
电子科技大学通信与信息工程学院 指针变量的引用 ⚫ 指针变量的常见操作: ⚫ 将指针变量指向被访问的变量 ⚫ 例:int n1=12, n2, *p; p = &n1; ⚫ 读指针指向的变量 ⚫ 例:n2 = *p; printf("%d", *p); ⚫ 写指针指向的变量 ⚫ 例:*p = 100; /*n1 = 100*/
指针变量的引用 ●例:读程序 #include stdio. h" 变量a 变量p main o 地址9024 902A int a=5, b=3, *p NULLi &a: 变量b b=*p+5; printf("b=号dln",b); 地址902c 10 p 4 printf("a=8d\n", a)i ●注意: *p若出现在“=”右边,则为读p所指向变量的内 谷 *p若出现在“=”左边,则为写p所指向变量的内 电子科技大学通信与信息工程学院
电子科技大学通信与信息工程学院 指针变量的引用 ⚫ 例:读程序 ⚫ 注意: ⚫ *p若出现在“=”右边,则为读p所指向变量的内 容 ⚫ *p若出现在“=”左边,则为写p所指向变量的内 容 #include "stdio.h" main() { int a=5, b=3, *p = NULL; p = &a; b = *p + 5; printf("b=%d\n", b); *p = 4; printf("a=%d\n", a); } 变量a 5 变量b 3 变量p NULL 地址902A 地址902C 902A *p 10 4
指针变量的引用 注意: 出现在不同的位置,有不同的含义: ●出现在指针变量定义处,*表示定义的变量是一个指 针 ●出现在其它语句中,*表示间接访问运算(即引用指 针变量所指向的内存单元) 电子科技大学通信与信息工程学院
电子科技大学通信与信息工程学院 指针变量的引用 ⚫ 注意: ⚫ *出现在不同的位置,有不同的含义: ⚫ 出现在指针变量定义处, *表示定义的变量是一个指 针; ⚫ 出现在其它语句中, *表示间接访问运算(即引用指 针变量所指向的内存单元)