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

avatar
作者
猴君
阅读量:0

在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时,需要在变量名称前加星号(*)来表示该变量是一个指针变量。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!