C 这个星号是什么意思?
我正在学习c语言编程,我不明白这个星号在main方法中是什么意思C 这个星号是什么意思?,c,C,我正在学习c语言编程,我不明白这个星号在main方法中是什么意思 intmain(intargc,char*argv[])表示argv是字符指针数组。表示argv是字符指针数组。表示指针charargv[]声明一个字符数组char*argv[]声明字符指针数组或字符串指针。它表示指针charargv[]声明一个字符数组char*argv[]声明字符指针数组或字符串指针。这些是从命令行传递到程序的参数。此asterix是一个指针运算符 基本上char argv[]是字符数组,char*argv[]
intmain(intargc,char*argv[])
表示argv
是字符指针数组。表示argv
是字符指针数组。表示指针charargv[]
声明一个字符数组char*argv[]
声明字符指针数组或字符串指针。它表示指针charargv[]
声明一个字符数组char*argv[]
声明字符指针数组或字符串指针。这些是从命令行传递到程序的参数。此asterix是一个指针运算符
基本上char argv[]是字符数组,char*argv[]是指向字符数组的指针。简单地说,它是用来表示多个字符串的
注意:char*argv[]
相当于char**argv
,因为char argv[]
可以表示为char*argv
更进一步说,你会惊奇地发现这两个表达式是等价的:
int a[5];
int 5[a];
这是因为整数数组是指向内存中一组整数的指针。
因此a[1]
可以表示为*(a+1)
,a[2]
表示为*(a+2)
等,这相当于*(1+a)
或*(2+a)
不管怎么说,指针是开始用C语言编程时最重要也是最难掌握的概念之一,所以我建议你在谷歌上认真研究一下它 这些是从命令行传递到程序的参数。此asterix是一个指针运算符 基本上char argv[]是字符数组,char*argv[]是指向字符数组的指针。简单地说,它是用来表示多个字符串的 注意:
char*argv[]
相当于char**argv
,因为char argv[]
可以表示为char*argv
更进一步说,你会惊奇地发现这两个表达式是等价的:
int a[5];
int 5[a];
这是因为整数数组是指向内存中一组整数的指针。
因此a[1]
可以表示为*(a+1)
,a[2]
表示为*(a+2)
等,这相当于*(1+a)
或*(2+a)
不管怎么说,指针是开始用C语言编程时最重要也是最难掌握的概念之一,所以我建议你在谷歌上认真研究一下它 声明
char*argv[]
将argv
声明为指向char
的指针数组(大小未知)
对于任何类型的T,声明
T *p;
T *a, b;
声明p
作为指向T的指针。注意*
绑定到标识符,而不是类型;在宣言中
T *p;
T *a, b;
只有
a
声明为指针。声明char*argv[]
将argv
声明为指向char
的指针数组(大小未知)
对于任何类型的T,声明
T *p;
T *a, b;
声明p
作为指向T的指针。注意*
绑定到标识符,而不是类型;在宣言中
T *p;
T *a, b;
只有
a
被声明为指针。char*a
表示a
是指向char
类型变量的指针
在您的情况下,argv
是指向类型为char
的变量的指针(或其中的几个指针-在您的情况下,在argv
中指定)。换句话说,它是一个指向数组的指针(长度为argv
),数组的指针指向char
变量
您甚至可以这样编写代码:
intmain(intargc,char**argv)
,实际上,只要char*a
与char a[]
相同,就不会有任何更改表示a
是指向char
类型变量的指针
在您的情况下,argv
是指向类型为char
的变量的指针(或其中的几个指针-在您的情况下,在argv
中指定)。换句话说,它是一个指向数组的指针(长度为argv
),数组的指针指向char
变量
您甚至可以这样编写代码:intmain(intargc,char**argv)
,实际上,只要char*a
与char a[]
相同,就不会有任何更改。这里的“*”肯定只指定了一个指针,用于将argv[]//变量数量的参数值//放置到合适的位置
因为您不知道用户将传递多少个参数,因为它是argc[argument count]和argv[argument value]。但是我们确实想给它们分配一个适合它们的空间,所以我们使用一个没有定义具体大小的指针,这个指针将自动找到并适合适当的内存位置
希望这有帮助,如果没有,我很乐意提供帮助,请让我知道:)这里的“*”确实只指定了一个指针,用于将argv[]//变量数量的参数值//放置到它可以容纳的位置
因为您不知道用户将传递多少个参数,因为它是argc[argument count]和argv[argument value]。但是我们确实想给它们分配一个适合它们的空间,所以我们使用一个没有定义具体大小的指针,这个指针将自动找到并适合适当的内存位置
希望这有帮助,如果没有帮助,我会很乐意帮助的,请告诉我:)嗯,不完全是这样。在此上下文中,
argv
是指向char
的指针,因为函数参数中的数组大括号实际上并不表示“array”。这一点非常正确。我应该想到的,不完全是。在这种情况下