Rumah php教程 php手册 关于C、java、php的函数参数传递特点的分析

关于C、java、php的函数参数传递特点的分析

Jun 06, 2016 pm 07:59 PM
java php pemindahan kira-kira fungsi menganalisis parameter Ciri-ciri

一直以来都没有时间写写自己对C中指针的理解,这篇文章虽然和指针关系不大,但却对于一些想要对指针有一些深入理解的人来说确实必须一看的。 想当初,本人特别反感的就是什么“传递”和“引用传递”的对比的问题? 真想说一句,究竟是谁在定义“传递”和“引



一直以来都没有时间写写自己对C中指针的理解,这篇文章虽然和指针关系不大,但却对于一些想要对指针有一些深入理解的人来说确实必须一看的。

想当初,本人特别反感的就是什么“值传递”和“引用传递”的对比的问题?

真想说一句,究竟是谁在定义“值传递”和“引用传递”的意义呢?

不过迫于当今教育中多数人都这么讲,我也没和老师提出来。此处特意贡献出我的理解,希望对新手朋友有些帮助。

首先对于奉劝那些还在纠结 “值传递”和“引用传递” 的区别的朋友赶紧不要纠结了,实在要纠结,我这里给你点一点,传统意义上老师口中的“值传递”和“引用传递”实际指的是 “参数为非指针类型情况传递”和 “参数为指针类型情况传递”...


/*********************************
 * 关于参数传递.
 * C中,参数传递全部使用值传递的方式.
 * 对于 int a , Person p 等类似情况...
 * (注意本人不想多费口舌,请注意本人想表达的直接修改的意义)
 * 1:直接修改形式参数任何情况都不可能影响到实际参数
 * 2:直接修改形式参数的成员也不可能影响到实际参数的成员
 * 3:修改形式参数的指针类型成员指向的内容 可以影响到 实际参数对应的指针类型成员指向的内容...
 * C中还有一种参数形式叫做引用,希望大家可以在不同地方的对不同的'引用'这个名词自动做不同的理解哈...
 * Person & p , int & a
 * 1:可以通过修改形式参数的成员修改实际参数的成员
 * 2:可以通过直接修改形式参数达到修改实际参数的目的
 * (注意第二点是java和php都不可能完全做到的)==>注意,之所以带上个‘完全’,是因为php还勉强能做到一部分...
 *
 * java
 * 对于java,万物皆为引用.
 * 1:无法通过改变形式参数来改变实际参数本身
 * 2:可以通过改变形式参数的成员来改变实际参数的成员
 * 3:总之.形式参数和实际参数实际是引用了同一个对象.
 * 想要达到不是引用同一个对象的效果,需要使用clone方法,但需要注意的是clone方法是显示调用的,不是自动调用的.
 * 所以clone方法实际与参数的传递永远不会产生关系.
 * (对于普通类型数据,无所谓怎么理解了,即使按照引用理解也无妨,反正普通类型变量是没有成员这个东西的
 *  所以形式参数根本没得对实际参数产生任何影响.
 * )
 *
 * php 更加类似 java
 * 对于php.和java类似.
 * 1:首先.对于普通类型数据,一样没有成员这个东西的,所以形式参数还是根本没得对实际参数产生任何影响.
 * 2:对于类对象的情况,和java类似,属于默认是属于引用传值.
 * 特点和java类似
 * 1:无法通过改变形式参数来改变实际参数本身
 * 2:可以通过改变形式参数的成员来改变实际参数的成员
 * 3:总之.形式参数和实际参数实际是引用了同一个对象.
 *
 * 区别.php以上特点和java都很类似,但有一点却是java没有的,就是&.
 * 首先对比C,php的&和C的作用类似.
 * 达到了目的:{
 *   1:可以通过修改形式参数的成员修改实际参数的成员
 *   2:可以通过直接修改形式参数达到修改实际参数的目的
 * }
 * 但是,之前说道了php还不完全和c一样...
 * 这里说明一下,实际上所谓的'不完全'是实现机制上的不完全,实际使用中其实几乎一样...
 *
 * 为什么说实现不一样呢?
 * C的引用,实际形式参数和实际参数可以理解为就是一个东西.
 * 但php却不可以这么理解.
 * 可以认为,php在不断维护2者之间的关系,导致2者时刻保持一致.
 * 即2者并不是同一块内存,当其中一块要销毁的时候,并不会导致另一块也销毁.
 * 也即unset函数的使用仅仅会取消2者的关联.
 *
 */

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Muzium Dua Point: Semua Pameran dan Di Mana Mencari Mereka
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Feb 07, 2025 am 11:57 AM

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

Program PHP untuk mengira vokal dalam rentetan Program PHP untuk mengira vokal dalam rentetan Feb 07, 2025 pm 12:12 PM

Rentetan adalah urutan aksara, termasuk huruf, nombor, dan simbol. Tutorial ini akan mempelajari cara mengira bilangan vokal dalam rentetan yang diberikan dalam PHP menggunakan kaedah yang berbeza. Vokal dalam bahasa Inggeris adalah a, e, i, o, u, dan mereka boleh menjadi huruf besar atau huruf kecil. Apa itu vokal? Vokal adalah watak abjad yang mewakili sebutan tertentu. Terdapat lima vokal dalam bahasa Inggeris, termasuk huruf besar dan huruf kecil: a, e, i, o, u Contoh 1 Input: String = "TutorialSpoint" Output: 6 menjelaskan Vokal dalam rentetan "TutorialSpoint" adalah u, o, i, a, o, i. Terdapat 6 yuan sebanyak 6

Cuti atau kembali dari Java 8 Stream Foreach? Cuti atau kembali dari Java 8 Stream Foreach? Feb 07, 2025 pm 12:09 PM

Java 8 memperkenalkan API Stream, menyediakan cara yang kuat dan ekspresif untuk memproses koleksi data. Walau bagaimanapun, soalan biasa apabila menggunakan aliran adalah: bagaimana untuk memecahkan atau kembali dari operasi foreach? Gelung tradisional membolehkan gangguan awal atau pulangan, tetapi kaedah Foreach Stream tidak menyokong secara langsung kaedah ini. Artikel ini akan menerangkan sebab -sebab dan meneroka kaedah alternatif untuk melaksanakan penamatan pramatang dalam sistem pemprosesan aliran. Bacaan Lanjut: Penambahbaikan API Java Stream Memahami aliran aliran Kaedah Foreach adalah operasi terminal yang melakukan satu operasi pada setiap elemen dalam aliran. Niat reka bentuknya adalah

7 Fungsi PHP Saya Menyesal Saya Tidak Tahu Sebelum ini 7 Fungsi PHP Saya Menyesal Saya Tidak Tahu Sebelum ini Nov 13, 2024 am 09:42 AM

Jika anda seorang pembangun PHP yang berpengalaman, anda mungkin merasakan bahawa anda telah berada di sana dan telah melakukannya. Anda telah membangunkan sejumlah besar aplikasi, menyahpenyahpepijat berjuta-juta baris kod dan mengubah suai sekumpulan skrip untuk mencapai op

Cipta Masa Depan: Pengaturcaraan Java untuk Pemula Mutlak Cipta Masa Depan: Pengaturcaraan Java untuk Pemula Mutlak Oct 13, 2024 pm 01:32 PM

Java ialah bahasa pengaturcaraan popular yang boleh dipelajari oleh pembangun pemula dan berpengalaman. Tutorial ini bermula dengan konsep asas dan diteruskan melalui topik lanjutan. Selepas memasang Kit Pembangunan Java, anda boleh berlatih pengaturcaraan dengan mencipta program "Hello, World!" Selepas anda memahami kod, gunakan gesaan arahan untuk menyusun dan menjalankan program, dan "Hello, World!" Pembelajaran Java memulakan perjalanan pengaturcaraan anda, dan apabila penguasaan anda semakin mendalam, anda boleh mencipta aplikasi yang lebih kompleks.

Java Made Simple: Panduan Pemula untuk Kuasa Pengaturcaraan Java Made Simple: Panduan Pemula untuk Kuasa Pengaturcaraan Oct 11, 2024 pm 06:30 PM

Java Made Simple: Panduan Permulaan untuk Kuasa Pengaturcaraan Pengenalan Java ialah bahasa pengaturcaraan berkuasa yang digunakan dalam segala-galanya daripada aplikasi mudah alih hingga sistem peringkat perusahaan. Untuk pemula, sintaks Java adalah ringkas dan mudah difahami, menjadikannya pilihan ideal untuk pembelajaran pengaturcaraan. Sintaks Asas Java menggunakan paradigma pengaturcaraan berorientasikan objek berasaskan kelas. Kelas ialah templat yang menyusun data dan tingkah laku yang berkaitan bersama-sama. Berikut ialah contoh kelas Java yang mudah: publicclassPerson{privateStringname;privateintage;

See all articles