📅  最后修改于: 2023-12-03 14:54:51.338000             🧑  作者: Mango
这是一个关于UGC NET CS 2018年7月-II的问题47的介绍,对程序员来说非常有用。
以下是问题47的描述:
在C语言中声明:
int **p;
下列哪个选项是合法的?
A. **p = 10;
B. (*p)++ ;
C. *p[2] = { 2, 4, 6};
D. p[0][0] = 5;
针对这个问题,下面是几个解决方案:
这个选项是假的,因为p是一个指向指针的指针,不能将整数值直接赋给它。正确的方法是先声明一个指向整数的指针,然后将其地址赋给p,最终赋值给存储区域。
这个选项是假的,因为*p是一个指向指针的指针,不能对其进行自增操作。正确的方法是先声明一个指向整数的指针,然后将其地址赋给p,最终对指针所指向的整数进行自增操作。
这个选项是假的,因为p是一个指向指针的指针,不能在声明时初始化它所指向的整数数组。正确的方法是先声明一个指向整数的指针,然后将其地址赋给p,最终对指针所指向的整数数组进行操作。
这个选项是真的,因为p是一个指向指针的指针,可以将整数值赋给其所指向的整数数组。这个选项的语法是正确的。
根据上面的解决方案,我们可以得出以下结论: