以下两种语句是否等价: 1. int stu [4]; int (*p)[4] = stu; 2. int stu [4]; int *p = stu;
时间: 2024-06-14 20:06:30 浏览: 5
以下两种语句是不等价的:
1.
```c
int stu[4];
int (*p)[4] = stu;
```
这里定义了一个名为`stu`的整型数组,数组长度为4。然后定义了一个指向整型数组的指针`p`,并将其指向`stu`数组。
2.
```c
int stu[4];
int *p = stu;
```
这里同样定义了一个名为`stu`的整型数组,数组长度为4。然后定义了一个指向整型的指针`p`,并将其指向`stu`数组的第一个元素。
这两种语句的区别在于指针的类型不同。第一种语句中,指针`p`是一个指向整型数组的指针,第二种语句中,指针`p`是一个指向整型的指针。因此,这两种语句的含义和用法是不同的。
相关问题
void stu::init(int mynum,char *myname,int myage) { num=mynum; strcpy(name,myname);age=myage;}
这是一个 C++ 类中的成员函数 `stu::init` 的实现代码,它的作用是初始化类的对象的数据成员 `num`、`name` 和 `age`。其中,`mynum`、`myname` 和 `myage` 是传入的参数,分别表示学生的学号、姓名和年龄。
具体来说,`mynum` 会被赋值给 `num`,`myname` 会被复制到 `name` 中,`myage` 会被赋值给 `age`。需要注意的是,`name` 是一个字符数组,因此不能直接使用赋值操作符,而是需要使用 `strcpy` 函数将字符串复制到 `name` 中。
该函数的定义应该在类的声明中,如下所示:
```
class stu {
public:
void init(int mynum, char* myname, int myage);
private:
int num;
char name[20];
int age;
};
```
你可以在类的外部调用该函数,例如:
```
stu s;
s.init(123, "Tom", 18);
```
public static void main(String[] args){ System.out.println("欢迎使用学生管理系统"); Student stu = new Student(); Scanner scanner = new Scanner(System.in); while(true){ jieMian(); int a = scanner.nextInt(); switch(a){ case 0: System.exit(0); break; case 1: stu.inputStu(); break; case 2: stu.selectStu(); break; case 3: stu.updateStu(); break; case 4: stu.deleteStu(); break; } } } }
这段代码是学生管理系统的主函数。首先输出欢迎信息,然后创建了一个名为stu的学生对象和一个Scanner对象。接着进入一个无限循环,每次循环都会调用jieMian()方法输出一个菜单供用户选择操作。根据用户的选择,使用switch语句对stu进行增加、查询、修改或删除操作。如果用户选择0,则调用System.exit(0)退出程序。