1. 程式人生 > >指向結構體的指標&結構體成員指標

指向結構體的指標&結構體成員指標

1、指向結構體的指標

一個 變數的指標,就是該變數所佔據的記憶體段的起始地址。指向一個結構體的指標變數,其值是結構體變數的起始地址。

/*
*copyright(c) 2018,HH
*All rights reserved.
*作 者:HH
*完成日期:2018年8月17日
*版本號:v1.0
*
*問題描述:指向結構體變數的指標的應用
*輸入描述:;
*程式輸出:
*/


#include <stdio.h>
#include <string.h>
struct student
{
    int num;
    char name[12];
    char sex;
    float score;
};
int main()
{
    struct student stu;
    stu.num=1001;
    strcpy(stu.name,"Ma Yun");
    stu.sex='F';
    stu.score=66.6;
    struct student *p=&stu;//定義了指向該結構體變數的指標
    printf("%d %s %c %f\n",stu.num,stu.num,stu.sex,stu.score);
    printf("%d %s %c %f\n",(*p).num,(*p).name,(*p).sex,(*p).score);
    printf("%d %s %c %f\n",p->num,p->name,p->sex,p->score);
    return 0;
}





2、指向結構體指標的另一種形式

例如:tRecordWave *pWave;//此種方法,就等價於*pWave=&tRecordWave

typedef struct
{
	uChar	state;			//本條錄波狀態,RCD_STATE_IDLE等值
	tRecordHead	head;		//頭資訊
	uShort	nextSmpIndex;	//下一個要記錄的取樣點的序號
	uShort	recordedNum;    //已記錄的點數,當此值達到要求的錄波點數時,錄波完成

	BIT32	waveDig[RCD_POINT_NUM];		//開入量和訊號量錄波資料
    short	waveAI[RCD_POINT_NUM][4+RCD_MAX_AI_NUM+2];//模擬量錄波資料
}tRecordWave;

tRecordWave *pWave;//此種方法,就等價於*pWave=&tRecordWave

相關推薦

指向結構指標&結構成員指標

1、指向結構體的指標 一個 變數的指標,就是該變數所佔據的記憶體段的起始地址。指向一個結構體的指標變數,其值是結構體變數的起始地址。 /* *copyright(c) 2018,HH *All rights reserved. *作 者:HH *完成日期:2018年8月1

指標實現取出結構變數中的成員

#include <stdio.h> struct Student{   int age;   float score;   char sex;}; int main(void){   struct Student st = {80, 66.6F, 'F'};   struct Student

結構結構變數以及指向結構變數的指標筆記

結構體:描述結構的組織形式,不分配記憶體 結構體變數定義:先定義結構體型別,再定義結構體變數 結構體變數的定義主要有3種形式 結構體型別與結構體變數概念的區別: (1)型別:不分配記憶體 變數:分配記憶體 (2)型別:不能賦值、存取、運算 變數:可以進行賦值、存

c#呼叫C/C++ DLL,傳入指標陣列(指標指向自定的結構)

來源:http://bbs.csdn.net/topics/380165851 依靠以下文章:解決問題。 、、、、、、、、、、、、、、、、、、、、 可以用Marshal.StruectToPtr哦。 、、、、、、、、、、、、、、 [StructLayout(Layo

C指向結構變數的指標(結構指標變數)

    一個指標變數當用來指向一個結構體變數時,稱之為結構體指標變數。結構體指標變數中的值是所指向的結構變數的首地址。通過結構指標變數即可訪問該結構的變數。結構指標變數說明的一般形式如下:struct 結構名 *結構指標變數名    結構名和結構變數時兩個不同的概念,不能混淆

在Golang裡如何實現結構成員指標結構自身指標的轉換

在C語言中有一個經典的巨集定義,可以將結構體struct內部的某個成員的指標轉化為結構體自身的指標。下面是一個例子,通過FIELD_OFFSET巨集計算結構體內一個欄位的偏移,函式getT可以從一個F*的指標獲得對應的T*物件。 struct F { int c; int d; }

連結串列中 指向 節點(結構指標指標(二重指標)(原題目為pta上查詢倒數k個位置上的數字)

#include<stdio.h> #include<stdlib.h> typedef struct list{ int num; struct list *next; }List ,*LIST; LIST createlist(LIST *L,

結構指標變數與結構成員指標變數

C程式碼 #include <stdio.h> #include <stdlib.h> #include <string.h> struct student{    char *name;    int score;  

【C/C++開發】函式使用結構結構指標作為返回值分析

函式使用結構體、結構體指標作為返回值分析 32位機,gcc編譯器 使用結構體作為返回值 分析反彙編程式碼可知,當被呼叫的子函式返回值為結構體的時候,呼叫函式將分配一段空間用於存放返回的結構體(使用一個結構體變數接受返回值),並將這段空間的地址作為呼叫時的引數壓棧。子程式不負責對要返回的結構體分

結構_結構指標,tyepdef_union_enum

#include "stdafx.h" #include <stdlib.h> #include <windows.h> #include <string.h> struct Student{ char *name; int age; }; //

求助!結構的二級指標陣列給一級指標初始化遇見的異常

百度也看了很多部落格都沒解決 主要程式碼如下 typedef struct HTNode { int weight; char c;//存這個字元,單個字元,符號都是葉子節點 int code; HTNode *lchild, rchild; }HuffmanTree; /

static 指標 結構使用

static 指標 結構體使用 static使用注意事項 static --> //修飾區域性變數:將變數的生命週期變為和整個程式相同 但是不改變作用域 //修飾全域性變數:將改變作用域為當前檔案 //修飾一個函式:修改了函式的作用域為當前檔案 指標定義

Go語言中需要注意結構方法副本傳參與指標傳參的區別

我們來看個例子: package main import ( "fmt" ) type B struct { Name string } func(b B) Test1() { fmt.Printf("Test1 add

Android JNI程式設計(六)——C語言函式指標、Unition聯合體、列舉、Typedef別名、結構結構指標

一:函式指標 1.函式指標顧名思義就是定義一個指標變數指向一個函式,和一級指標並沒有很大的區別我們看如下程式碼就很清楚的知道了 #include<stdio.h> #include<stdlib.h> //定義一個函式 in

C語言 結構結構指標用法總結

在C語言開發中,結構體用到的機會很多。所謂結構體,就是定義一種裡面包含多種元素的變數。 我們來看一個簡單的例子。比如你想定義一個書名列表然後為每本書建立書名和作者作為書的資訊。結構體變數定義如下: struct book { char name[30]; ch

結構結構指標詳細總結

結構體:結構體也是一種資料型別,在一個結構體中包含了多種型別的資料,比如int,float,char等等。使用結構體可以很好地管理一批有聯絡的資料,使用結構體資料可以提高程式的易讀易寫效能。結構體也是C語言用的較多的型別,小型實時作業系統ucos,當讀其原始碼時,會發現指標結

指標組合(如指標陣列)的區分及其結構記憶體大小的計算

指標對於每一位初學者那是苦不堪言,我初學的時也是很頭痛,我認為c語言重要的就是三塊:指標、連結串列和函式,本人覺得此三塊好比劉邦的三傑,在此我先宣告,本文章沒有涉及到連結串列的知識,此文主要是談及指標函

指標結構函式-其實可以這樣詳細理解

今天一大早登了下QQ空間,看到本科的一個學弟發表一篇日誌,寫關於西電微軟俱樂部面試題的解答,寫的很不 錯。我也一下子起興了,因為我曾經也是被指標困惑很久,搞不清頭緒,本科到研究生,我也筆試面試不下二十

第22節 C語言結構結構巢狀、結構指標結構陣列的程式碼實現

結構體 #include <stdio.h> //第一步 struct Student { //學號 int no; //姓名 char name[20]; //性別 char

結構陣列,結構指標 (C,隨筆)

#include<stdlib.h> struct S { int num; }; struct S s; struct S ss[5]; #include<stdio.h>