不懂指针类型,8个例子给你讲明白

开发 前端
知乎上回答了一个粉丝问题,结果这兄弟又连续问了几个问题:好吧,帮人帮到底,送佛送到西!给你讲彻底点吧!

[[394356]]

0.问题

知乎上回答了一个粉丝问题,

结果这兄弟又连续问了几个问题:

好吧,帮人帮到底,送佛送到西!给你讲彻底点吧!

1. int va;

这是一个整型变量,32位CPU的话,占有32个bite

2. int *va;

这是一个整型指针变量,用于存放一个整型变量的地址,

3. int **va;

这是一个整型的二级指针,用于存放一个内存的地址,该地址对应的内存中存放了另一个整型变量的地址

比如:

  1. int va=0x12345678;  
  2. int *pva = &va; 
  3.  int **ppva = &pva; 

4. int *va[3]

这是一个数组,该数组里面的成员是整型的指针,分别指向int型的内存

5. int (*va)[3]

这是一个指针,指向一个int型数组

注意,该地址类型是int [3]型,他的值是0x40004000,

值为0x40004000的符号还有:

  1. a   &a[0] 

但是他俩的类型和va不一样,

6. void *va(int)

这是一个函数

函数的参数是int,

返回值是void *

void (*va)(int) 这是一个指针,指向一个函数,

该函数形参是int

返回值是void

举例

  1. void (*va)(int); 
  2. void func(int num) 
  3.    printf("一口Linux %d\n",num); 
  4. va = func ; 
  5. //调用 
  6. main() 
  7.    (*va)(6); 

注意:函数名也是一个地址

8. int (*va[3])(int)

结合方式:

  • va先和[3]结合,说明va是一个数组
  • va[3] 外面*结合,所以数组元素是一个指针
  • 假定(*va[3])是X,外面是 int (X)(int),所以指针是指向函数的
  • 函数的形参是是int型,返回值是int型

 

责任编辑:武晓燕 来源: 一口Linux
相关推荐

2023-03-14 08:02:14

静态路由动态路由设备

2024-01-08 13:40:00

并发安全• 数量

2020-02-06 14:57:11

明白SpringMvc异步处理

2023-11-29 08:01:38

websocket协议

2021-05-08 07:14:38

MySQL数据库安全性

2009-06-18 15:53:37

Hibernate B

2019-12-02 15:48:13

SSD容量闪存

2018-01-02 09:44:37

2022-10-08 13:29:19

Pandasgroupby

2020-08-27 21:28:06

算法伪代码初学者

2018-04-02 10:37:10

Linux命令size

2022-08-01 10:44:37

人工智能AI

2009-10-13 14:33:00

2022-07-11 18:34:49

指标体系KPI维度

2021-10-09 00:02:04

DevOps敏捷开发

2021-06-13 12:03:46

SaaS软件即服务

2022-03-27 20:32:28

Knative容器事件模型

2021-04-21 11:08:00

数据分析数据集Python

2024-01-25 11:41:00

Python开发前端

2024-06-05 08:51:08

点赞
收藏

51CTO技术栈公众号