結構體變數作為函式引數
推薦使用引用的方式。因為傳遞的是變數的地址,因而效率較高,並且可讀性也高
#include <iostream> #include <string> using namespace std; struct Student { int num; string name; float score[3]; }stu={12345,"Li Li",67.5,89,78.5}; void print(Student &stud)//函式定義,形參為結構體Student變數的引用 { cout<<stud.num<<" "<<stud.name<<" "<<stud.score[0] <<" " <<stud.score[1]<<" "<<stud.score[2]<<endl; } int main( ) { print(stu);//實參為結構體Student變數 return 0; }
另外還有兩種方法但缺點都比較明顯
相關推薦
結構體變數作為函式引數
推薦使用引用的方式。因為傳遞的是變數的地址,因而效率較高,並且可讀性也高 #include <iostream> #include <string> using names
結構體陣列作為函式引數
把結構體陣列名作為函式的一個引數,然後在這個函式的函式裡面繼續作為引數,把一個值賦給這個結構體陣列的一個變數,我再賦值的地方是有值的,在函式裡面也是有值的,但是出了這個函式回到主函式時,這個結構體陣列的變數的值就為空了。為什麼呢?因為我在使用這個函式是這樣的, iRetur
c語言結構體成員作為函式引數
使用者可以自定義結構體,是C語言的可以更方便的解決各種型別的問題。我們知道結構體變數可以作為函式引數,那結構體內部的成員變數可以作為函式引數麼? #include<stdio.h> #include<string.h> struct Worker{
結構體指標作為函式引數傳遞卻無法傳值的有關問題
今天做C++作業遇到一個問題,需要寫一個函式(在連結串列中新增新的節點)將結構體指標作為形參,結果發現傳遞之後無法改變結構體的值,連結串列的長度還是沒變。通過查詢資料,發現把形參改為對結構體指標的應用即可解決問題。 原始碼: struct Tnode { strin
C語言經典例題--結構體指標變數作為函式引數的傳遞
#include <stdio.h> #include <string.h> struct student { int age; char sex; char name[30]; }; void inputstudent(struct stu
結構體變數和結構體指標變數作為函式引數傳遞的問題
/*2015年8月28日13:20:28通過函式完成對結構體變數的輸入和輸出*/# include <stdio.h># include <string.h>struct Student{int age;char sex;char name[100];
C++ 字串 14-- 18.40.結構體與函式 結構體作為函式引數、結構體指標作為函式返回值
#include <iostream> #include <string> using namespace std; /*--------------------------------- 18.40.結構體與函式 結構體作為函式引數、結構體指標作為
結構體指標作函式引數(C# 呼叫C++ 的DLL)
1、C++結構體定義: #pragma pack(1) struct Person { #define Count_favoriteNumbers 6 int id; fl
指標變數作為函式引數問題
今天建哈夫曼樹的時候發現指標變數作函式引數的問題,花了兩個多小時,深刻反思! 插入元素到從小到大排序的單鏈表中,並保持連結串列的有序性,有兩種做法: 一種是帶頭節點的單鏈表(很簡單,不討論) 另一種
C語言中指標變數作為函式引數和一般變數作為函式引數的區別
函式的引數不僅可以是整型、浮點型、字元型等資料,還可以是指標型別。它的作用是將一個變數的地址傳送到另一個函式中。 指標變數作為函式引數和一般變數作為函式引數是有區別的,對於這種區別初學者一般都很迷惑。下面我將就一個簡單的例子來說明一下它們的區別。看透以後也許也就不那麼疑惑了。
C語言指標變數作為函式引數
在C語言中,函式的引數不僅可以是整數、小數、字元等具體的資料,還可以是指向它們的指標。用指標變數作函式引數可以將函式外部的地址傳遞到函式內部,使得在函式內部可以操作函式外部的資料,並且這些資料不會隨著函式的結束而被銷燬。 像陣列、字串、動態分配的記憶體等都是一系列資料的集合,
指標變數作為函式引數為了改變指標變數指向實參的值
C語言使用值傳遞時,僅僅將實參的值傳遞給形參。 對於第一種寫法 main函式傳遞給Swap函式的是&a和&b的值,即a和b所在的地址的值 那麼Swap函式裡面通過*x來更改的就是&a所在的地址裡面的值,也就是a本身的值了,所以第一種寫法main函式呼叫Swap函式之後,a和b的值會
結構體變數、結構指標變數、結構陣列作為函式的引數應用例項分析 .
結構體變數、結構指標變數、結構陣列作為函式的引數應用例項分析 struct stud { long int num; float score; }; /*結構體變數作為函式的引數,修改之後的成員值不能返回到主調函式*/ void funvr(struct stud t) { t.num=200010
c++中結構體作為函式引數的使用
結構體雖然和陣列一樣,都可以儲存多個數據項,但是在涉及到函式時,結構變數的行為更接近於一個基本的單值變數,也就是說,與陣列不同,結構將其資料組合成單個實體或資料物件,該實體被視為一個整體。函式中引數為
結構體作為函式引數(值傳遞,引用傳遞,指標傳遞)
一、值傳遞 #include <iostream> #include <string> using namespace std; struct Student { int id; string name; float sco
C++基礎知識複習--結構體類陣列作為函式引數
//結構體陣列,類陣列,普通陣列,作為函式引數 #include<iostream> #include<string> using namespace std; class C
結構體定義與作為函式引數的結構
可以參考《C和指標》P206 一、在結構體內部如下定義是違法的: struct s { int a; struct s b; } 因為內部包含自己的成員永遠不會終止,類似遞迴。 但是如下定義是合法的: struct s { int a; st
細節決定成敗(用結構體變數和結構體指標變數的指標做函式引數)
//有n個結構體變數, //內含學生學號, //姓名和3門 //課程成績 //要求輸出平均成績最高 //的學生的資訊 //包括學號,姓名, //3門課程成績和平均成績 #include <stdio.h> #define n 3 struct student{
【C/C++開發】函式使用結構體、結構體指標作為返回值分析
函式使用結構體、結構體指標作為返回值分析 32位機,gcc編譯器 使用結構體作為返回值 分析反彙編程式碼可知,當被呼叫的子函式返回值為結構體的時候,呼叫函式將分配一段空間用於存放返回的結構體(使用一個結構體變數接受返回值),並將這段空間的地址作為呼叫時的引數壓棧。子程式不負責對要返回的結構體分
有關 陣列作為函式引數 & 區域性變數和全域性變數及其應用
一、陣列blabla 1.0陣列元素作函式實參。 (1).陣列元素可以用作函式實參,但不能是形參。(給陣列分配的儲存單元是連續的) 2.0一維陣列名作函式引數。 (1)陣列元素作實參時,向形參變數傳遞的時陣列元素的值。 陣列名作實參時,向形參傳遞的時陣列首元素的地址。