java的this指针和c的指针的区别,请举例
时间: 2024-06-12 17:03:59 浏览: 8
Java 中的 this 指针是一个关键字,代表当前对象的引用,可以用于访问当前对象的属性或方法。而 C 中的指针是一个变量,存储了某个变量或对象的内存地址,可以通过指针来访问该变量或对象。
举个例子,假设有一个名为Person的类:
```
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name; // 使用this访问当前对象的name属性
this.age = age; // 使用this访问当前对象的age属性
}
public void printInfo() {
System.out.println("Name: " + name + ", Age: " + age);
}
}
```
在上述代码中,this 关键字用于访问当前对象的属性,即 name 和 age。而在 C 语言中,可以使用指针来访问结构体的成员变量,例如:
```
struct Person {
char *name;
int age;
};
void printInfo(struct Person *p) {
printf("Name: %s, Age: %d\n", p->name, p->age);
}
int main() {
struct Person person = {"John", 30};
struct Person *p = &person; // 取得person的地址,并赋值给指针p
printInfo(p); // 通过指针p访问person的成员变量
return 0;
}
```
在上述代码中,通过指针 p 访问了 person 的成员变量 name 和 age。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![md](https://img-home.csdnimg.cn/images/20210720083646.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)