C语言中星号*的作用

7/3/2024 2:17:44 PM
331
0
  • 定义指针变量:在C和C++中,可以通过在变量名前加上星号来定义一个指针变量。例如,int* ptr; 定义了一个名为ptr的指向整数的指针变量。char *str = "Hello";  // str 是一个指向字符数组的指针
  • 取址操作符(&):在使用指针之前,需要通过取址操作符(&)获得变量的内存地址。例如,int num = 10; int* ptr = # 将num的地址赋值给ptr。
  • 解引用操作符():通过解引用操作符,我们可以访问指针所指向的内存地址上存储的值。例如,int num = 10; int* ptr = # *ptr = 20; 将num的值修改为20。
  • 指针和数组:指针可以用于访问数组中的元素。通过将数组的名称赋值给一个指针变量,我们可以使用指针来遍历数组中的元素。
  • 动态内存分配:指针也可以用于动态内存分配。通过使用关键字new,在堆上分配内存空间,并将分配的内存的地址赋值给指针变量。int *ptr = (int *)malloc(sizeof(int));  // 使用 malloc 动态分配一个整数大小的内存块,并将其地址赋给指针 ptr
  • 指针类型的参数:给函数声明参数时适用 指针做参数 void getSeconds(unsigned long *par);
  • 指向指针的指针(双重指针):int **ptrPtr = &ptr;  // ptrPtr 是一个指向指针 ptr 的指针
  • 指针数组:int *ptrArray[5];  // 声明一个包含5个指向整数的指针的数组
  • 返回指针:从函数返回一个指针,int * getRandom(){ static int  r[10]; return  r;   } 数组的名(变量)的值就是这个数组的第一个元素的地址。
  • 函数指针:int (*funcPtr)(int, int);  // 声明一个指向函数的指针,该函数接受两个整数参数并返回一个整数。 C#的委托与其类似
  • 空指针:在概念上不同于未初始化的指针。空指针可以确保不指向任何对象或函数;而未初始化的指针则可能指向任何地方。空指针不是野指针。  int *ptr=NULL;
  • 星号的位置:* 可以放在类型名称(如 int*)后面,也可以放在变量名(如 *ptr)前面。int *ptr;  和  int*  ptr; 等效
  • 乘法:a*b

全部评论



提问