c语言

c语言指针加星号和不加星号有什么区别

小亿
476
2023-11-24 02:24:00
栏目: 编程语言

在C语言中,指针加星号(*)和不加星号的区别在于其在声明中的位置和用途。

  1. 在声明中的位置:

    • 加星号(*)在声明中放在变量名称前面,表示该变量是一个指针变量,用于存储一个内存地址。
    • 不加星号表示该变量是一个普通变量。
  2. 用途:

    • 加星号(*)用于解引用指针,即通过指针访问所指向的内存地址中的内容。
    • 不加星号用于访问普通变量本身。

例如:

int a = 10;      // 声明一个普通变量a,值为10
int *ptr = &a;  // 声明一个指针变量ptr,存储a的内存地址

printf("%d\n", a);       // 输出10
printf("%d\n", *ptr);   // 输出通过指针访问a的值,即10
printf("%u\n", &a);      // 输出a的内存地址
printf("%u\n", ptr);    // 输出ptr存储的内存地址

在上面的例子中,变量a是一个普通变量,通过指针ptr访问a的值时需要使用解引用操作符*。而在声明指针变量ptr时,需要在变量名称前加星号(*)来表示该变量是一个指针变量。

0
看了该问题的人还看了