变量前面加星号
鄙人第一次看到这个问题的时候,也是一愣,而且首先想到的是Python中的解构字典和可变参数(解构字典在比较新的版本的Python中有),后来又想了想,认为C语言变量前面加星号可能指的是指针。比如下面这段代码:
#include <stdio.h>int main(void){
char str1[] = "abc";
char *p = str1;
printf("%s",p);
return 0;}
如上代码,变量str1是一个字符数组,实际上,也是一个指针,而且指向的是数组中的第一个字符的指针,然后又定义了一个指针变量p,用来指向数组变量,因此,也是一个指向字符数组第一个字符('a')所在的内存地址的指针。简单验证实际上,我们可以分别输出str1和p所指向的内存地址,来简单验证,比如下面的这段代码(输出的应该是相同的值):
#include <stdio.h>int main(void){
char str1[] = "abc";
char *p = str1;
printf("%p\n",(void*)&str1[0]);
printf("%p\n",(void*)p);
return 0;}
免责声明:内容仅供参考,不保证正确性,不作任何决策依据!
|