C语言与Java怎么沟通_c语言初学指针,对于java面向对象的初理解
最近在看關(guān)于c語言的指針,學(xué)習(xí)下,發(fā)現(xiàn)指針原來運(yùn)用理解成其實(shí)可以抽象出我們java的面向?qū)ο蠓庋b,地址--> 對(duì)象或變量,先看一段代碼:
public class Cat {
public String name;
}
public class CatTest {
public static void main(String[] args) {
Cat cat = new Cat(); //new了一個(gè)對(duì)象,相當(dāng)于對(duì)象即是指針指向了一個(gè)地址
cat.name = "cat david";
System.out.println("cat.name = " + cat.name);
int i= 100;
System.out.println("i = " + i);
//i的值不會(huì)變化,是因?yàn)?i傳入的是數(shù)值,而change(i),只是新開拓了一個(gè)空間地址i
//并賦值給了新創(chuàng)的i變量,所以值沒有發(fā)生變化
change(i);
System.out.println("i = " + i);
change(cat);
//cat是一個(gè)對(duì)象,指向的是一個(gè)地址門牌,而change(cat)是找到cat的地址,修改了cat地址門牌下對(duì)應(yīng)的name指向地址(即是指針)的數(shù)據(jù)內(nèi)容。
System.out.println("cat.name = " + cat.name);
}
public static void change(int i){
i = 200;
}
public static void change(Cat cat){
cat.name = "cat jack";
}
}
輸出如下:
===========================
cat.name = cat david
i = 100
i = 100
cat.name = cat jack
===============================
再來看c的內(nèi)容
//變量名,對(duì)內(nèi)存空間上的一段數(shù)據(jù)的抽象
void main(){
int i = 90;
i = 89;
printf("i的值為:%d\n",i);
int* p = &i;
//*給p上存儲(chǔ)的地址賦值 這種方式叫間接賦值
//指針最最重要的用法,正是有了它,才有了java的面向?qū)ο蟆?/p>
//?*p = 200;
change(i)
printf("i的值為:%d\n",i);
change(p)
printf("i的值為:%d\n",i);
system("pause");
}
輸出:
i的值為:89
i的值為:89
i的值為:300
//局部變量 不改變main函數(shù)里面的值
void change(int i){//這兒相當(dāng)于局部變量開創(chuàng)了一個(gè)新的內(nèi)存空間
i = 300;
}
void change(int* p){
*p = 400;//p是i變量的地址,這一行*p相當(dāng)于給指定地址改了地址里面的內(nèi)容。
}
總結(jié)
以上是生活随笔為你收集整理的C语言与Java怎么沟通_c语言初学指针,对于java面向对象的初理解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 网络io详解_Java网络so
- 下一篇: java美元兑换,(Java实现) 美元