c語言指向結構體陣列的指標
設ps為指向結構陣列的指標變數,則ps也指向該結構陣列的0號元素,ps+1指向1號元素,ps+i則指向i號元素。這與普通陣列的情況是一致的。
【例11-6】用指標變數輸出結構陣列。
- structstu{
- int num;
- char *name;
- char sex;
- float score;
- }boy[5]={
- {101,"Zhou ping",'M',45},
- {102,"Zhang ping",'M',
- {103,"Liou fang",'F',92.5},
- {104,"Cheng ling",'F',87},
- {105,"Wang ming",'M',58}
- };
- main(){
- structstu *ps;
- printf("No\tName\t\t\tSex\tScore\t\n");
- for(ps=boy;ps<boy+5;ps++)
- printf("%d\t%s\t\t%c\t%f\t\n",ps->num,ps->name,ps->sex,ps->score);
- }
應該注意的是,一個結構指標變數雖然可以用來訪問結構變數或結構陣列元素的成員,但是,不能使它指向一個成員。也就是說不允許取一個成員的地址來賦予它。因此,下面的賦值是錯誤的。
ps=&boy[1].sex;
而只能是:
ps=boy;(賦予陣列首地址)
或者是:
ps=&boy[0];(賦予0號元素首地址)
相關推薦
c語言指向結構體陣列的指標
c指標變數可以指向一個結構陣列,這時結構指標變數的值是整個結構陣列的首地址。結構指標變數也可指向結構陣列的一個元素,這時結構指標變數的值是該結構陣列元素的首地址。設ps為指向結構陣列的指標變數,則ps也指向該結構陣列的0號元素,ps+1指向1號元素,ps+i則指向i號
【C語言】用結構體陣列指標完成:有三個學生資訊,存放在結構體陣列中,要求輸出全部資訊
//用結構體陣列指標完成:有三個學生資訊,存放在結構體陣列中,要求輸出全部資訊 #include <stdio.h> struct Stu { int num; char name[2
【C語言經典例項】-指向結構體的指標變數
本例項通過結構體指標變數實現在窗體上顯示學生資訊,執行程式後,將學生資訊輸出在窗體上,效果如圖所示: 在本例項中,我們先宣告一個結構體變數,並定義一個指標變數指向struct student型別的資料,程式碼如下: #include<stdio.h> #inc
【C語言】結構體包含指向自己的指標
執行環境:VC6.0 例子程式:tets.c ************************************************************************************************* #include <stdio.h> struct x
C語言_指向結構體的指標_plusC14.4
#include<stdio.h> #define LEN 20 struct name {char first[LEN];char last[LEN]; }; struct guy {struct name handle;char favfood[LEN];c
C語言,結構體中字串的宣告(採用字元指標還是字元陣列)
結構體中,字串選項是用字元陣列表示好,還是用字元指標表示好? typedef struct person{ char *name; int age; char sex[6]; } 該結構體中name用的是指標而不是陣列,所以需要給字串在堆上申
【C 語言】結構體相關 的 函式 指標 陣列
.作者 : 萬境絕塵.結構體概述 : 結構體是 多個 變數的集合, 變數的型別可以不同;-- 可進行的操作 : 結構體可以進行 拷貝 賦值操作, 可以作為 函式引數 和 函式返回值;1. 結構體的基本使用結構體宣告 : struct 結構標記 {結構成員} 普通變數;-- 結
c語言結構體陣列指標
#include<stdio.h> #define N 3 struct student { long int num; char name[20]; float score[3]; float aver; }; int main() {
指向結構體變數的指標與指向結構體陣列的指標使用時的區別
指向結構體變數的指標與指向結構體陣列的指標在使用時的區別就是:指向結構體變數的指標,在使用時這樣寫:struct rsol v;struct rsol *m;m = &v;指向結構體陣列的指標,在使用時這樣寫:struct edc hj[5]={1,2,3,4,5};
C語言中結構體指標的定義和引用
指向結構體型別變數的使用 首先讓我們定義結構體: struct stu { char name[20]; long number; float score[4]; } ; 再定義指向結構體型別變數的指標變數: struct stu *p1, *p2 ; 定義指標變數p 1、p 2,分別指向結構體型別變數。
C語言:結構體中一級指標和二級指標的建立與釋放示例
這幾天把C語言鞏固了一下,作為一門最基本的程式語言,C語言還是相當基礎和非常重要的,個人認為C語言還是很有必要學好吃透的。 今天寫的話題是結構體結構體中一級指標和二級指標的建立與釋放,以一個例子來說明,筆者這裡自己敲得程式碼,雖然用C語言幾年了,但是有的東西還是會遺忘。筆者
指向結構體陣列的指標應用
#include <stdio.h>struct stu{ int num; char name[10]; float score;}st[3] = {11,"Maggie",69,12,"Jeny",92.13,13,"Jesse",92.69};/* 也可以這樣初始化:st[3] = {{11
C 語言通過結構體成員獲得結構體指標
通過結構體成員拿到結構體的指標,是C語言實現繼承多型的基礎。面向物件C程式設計可以參看這裡OOC 面向物件C語言程式設計實踐。這裡詳細介紹這個核心的操作方法。 /** * Get struct pointer from member pointer */ #defin
C#呼叫c++Dll結構體陣列指標的問題
C#呼叫c++dll檔案是一件很麻煩的事情,首先面臨的是資料型別轉換的問題,相信經常做c#開發的都和我一樣把學校的那點c++底子都忘光了吧(語言特性類)。 網上有一大堆得轉換對應表,也有一大堆的轉換例項,但是都沒有強調一個更重要的問題,就是c#資料型別和c++資料型別佔
C語言_結構體巢狀和字串陣列的表示_plusC14.3
#include<stdio.h> #define LEN 20 const char *mgs[5]= {"qqqq","wwww","EEEEEEE","RRRR","TTTTT" }; struct apple {char smell[LEN];char
(指向結構體陣列的指標)有n個結構體變數,內含學生學號,姓名和3門課的成績。要求輸出平均成績最高的學生的資訊
#include<stdio.h> #define N 3 struct Student { int num; char name[20]; float score[3]; fl
C語言中結構體與字元陣列之間的相互轉換
#include <stdio.h> #include <stdlib.h> #include <string.h> #pragma pack(push) //儲存對齊狀態 #pragma pack(1) typedef st
C語言複習 -- 結構體指標與自增運算子
測試程式碼: #include <stdio.h> #include <stdlib.h> int main() { struct student { char *name; int score; }; struct stud
【C++】指向結構體變數的指標
#include"iostream" #define N 10 using namespace std; //指向結構體變數的指標 struct Student { int numb; char *
C語言之結構體巢狀一級指標和二級指標
指標是C語言的精華,也是c中最難的部分;為了鍛鍊和提高自己對指標的理解,特在結構體中巢狀一級指標和二級指標來加深對。 #include<stdio.h> #include <string.h> #include<stdlib.h&