C语言导航 3.3指针运算符

第三节 指针运算符

  • 运算符详解

  • 指针的运算

3.4.1 运算符详解

内容:C语言中提供了两个与指针操作有关的运算符“&”和“*”。

(1)“&”运算符:取地址运算符,可获得操作数(变量)的内存地址。

(2)“*”运算符:间接访问运算符,可访问该指针所指向变量的值。

注意:指针变量存放的是内存中的地址编号,对指针变量的操作是对该编号操作,而加上间接访问运算符即可对指针变量中所指地址的值进行操作。

【程序现场】3-4-1
 #include<stdio.h>
 int main(void)
 {
     int *p,a=5;
     printf("a = %d\n",a);
     p=&a;
     printf("p = %p\n",p);
     printf("*p = %d\n",*p+1);
     
     return 0;
 }

3.4.2指针的运算

说明:指针变量存放的是内存地址,所以进行的运算都是整数运算。

注意:

(1)由于指针变量的数据类型不同和各计算机存储器的编码方式不同,所以一个变量会占有多个内存单元,而进行保存、操作的一般都为该数据的首个内存单元编号。

(2)对指针变量进行整数运算时,所加减值表示加减整数倍个指针变量指向的数据类型的长度,即 指针变量+整数 等于 指针变量所指的地址 + 整数 × sizeof(指针的数据类型)

【程序现场】3-4-2
 #include<stdio.h>
 int main(void)
 {
     char *p_c,c='c';
     int *p_a,a=5;
     double *p_d,d=2.5;
     printf("&c = %p\n",&c);
     p_c=&c;
     printf("p_c = %p\n",p_c+1);
     
     printf("&a = %p\n",&a);
     p_a=&a;
     printf("p_a = %p\n",p_a+1);
     
     printf("&d = %p\n",&d);
     p_d=&d;
     printf("p_c = %p\n",p_d+1);
     
     
     return 0;
 }
上一篇:初始Docker


下一篇:【Ubuntu】Ubuntu22双网卡指定网关