當前位置:首頁 » 編程語言 » c語言結構體引用

c語言結構體引用

發布時間: 2022-11-08 08:23:59

A. c語言結構體成員的引用問題

scanf的用法,格式後的參數都必須是地址,name是數組名,本身就是數據,age和sex都是整型數據,必須使用取地址符&。

p是struct student*類型,stu是stu[3]這個數組的第一個元素的地址,p指向第一個元素,因此ABC都是對的,D錯在把(int*)變數值賦值給(struct student*)變數,有個強制轉換則不會錯,因為age是結構體第一個變數,其地址就是結構體變數的地址。

是指針間的賦值,必須保證左右操作數的指針類型是一致的。由於n是結構體sk的第一個變數,因此其地址與結構體變數地址相同,可以強制轉換得到正確的地址。

c是一個二維數組,p是一個指向數組的指針,因此p的*運算都是得到一個數組,**運算才能取到數組中的值。只有D是**運算。

(1)c語言結構體引用擴展閱讀:

C語言初學者比較喜歡的Turbo C2.0提供了400多個運行時函數,每個函數都完成特定的功能,用戶可隨意調用。這些函數總體分成輸入輸出函數、數學函數、字元串和內存函數、與BIOS和DOS有關的函數、 字元屏幕和圖形功能函數、過程式控制制函數、目錄函數等。

Windows系統所提供的Windows SDK中包含了數千個跟Windows應用程序開發相關的函數。其他操作系統,如Linux,也同樣提供了大量的函數讓應用程序開發人員調用。

參考資料來源:網路-C語言

B. 關於c語言結構體變數成員引用的問題

(1)、scanf的用法,格式後的參數都必須是地址,name是數組名,本身就是數據,age和sex都是整型數據,必須使用取地址符&;
(2)、p是struct
student*類型,stu是stu[3]這個數組的第一個元素的地址,p指向第一個元素,因此ABC都是對的,D錯在把(int*)變數值賦值給(struct
student*)變數,如果有個強制轉換則不會錯,因為age是結構體第一個變數,其地址就是結構體變數的地址。
(3)、與(2)類似,是指針間的賦值,必須保證左右操作數的指針類型是一致的。由於n是結構體sk的第一個變數,因此其地址與結構體變數地址相同,可以強制轉換得到正確的地址。
(4)、c是一個二維數組,p是一個指向數組的指針,因此p的*運算都是得到一個數組,**運算才能取到數組中的值。只有D是**運算。

C. C語言中,結構體數組中的成員是字元數組,其各元素怎麼引用

先以數組名加下標,訪問對應的結構體變數。
然後再以.成員名的方式,訪問數組名。
最終以數組名加下標的方式,訪問具體的數組元素。
比如
struct test
{
char a[100];

};
在定義
struct test t[20];
的情況下,訪問t的第i個元素中,a的第j個字元的代碼,可以寫作
t[i].a[j]

D. c語言結構體里引用結構體

#include
struct person
{
char name[10];
int num;
};

void main()
{
struct person per[5];
void sort(struct person *, int );
int i;
printf("print letter:\n");
for(i=0;i<5;i++)
{
printf("name: ");
scanf("%s", &per[i].name);
printf("num: ");
scanf("%d", &per[i].num);
}
sort(per, 5);
for(i=0;i<5;i++)
printf("print: %s%d\n", per[i].name, per[i].num);
getch();
}

void sort(struct person *a, int n)
{
int i,j,t;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(a[i].num>a[j].num)
{
t=a[i].num; /*你代碼中i寫成j,這是細節問題*/
a[i].num=a[j].num;
a[j].num=t;
}
}

你代碼有點問題,我給你改了改。TC測試通過。
除了注視的地方,還有幾點要注意:
你源代碼傳送的是per[0].num的地址,記:a[0],但是a[1]的地址不等於
per[1].num的地址。
指針加1的意思你沒理解好。
舉個列子。
int a[10];
那麼*(a+1)的意思是把a地址向後移動sizeof(int)個位。
所以你那個&a[1]指向的還是結構體中的數據。(恩,這里體現了低級語言的特性。每一個內存的每一位都要考慮到。要是你寫個程序:200位的浮點數加法計算機,你更能體會到什麼叫做考慮到每一位內存,調試的時候要一個內存一個內存的演算。代碼我的空間里有,可以自己去看)

不懂的問

E. C語言中結構體數組中的整型數組怎樣引用

#include<iostream>
usingnamespacestd;
inta[6][6];

structStrArray//聲明一個結構體
{
intarray[10];
}strA[10];//定義一個結構體數組
intmain()
{
for(inti=0;i<10;i++)//引用第一個結構體的整型數組並賦值
{
strA[0].array[i]=i;
}
for(i=0;i<10;i++)//輸出看下結果
{
printf("%d",strA[0].array[i]);
}
return0;
}

熱點內容
最新款的電腦高配置是什麼樣的 發布:2025-01-12 01:44:08 瀏覽:822
編程手舞蹈 發布:2025-01-12 01:36:18 瀏覽:958
阿里雲伺服器要備案嗎 發布:2025-01-12 01:36:06 瀏覽:93
資料庫應用與信息管理 發布:2025-01-12 01:26:06 瀏覽:269
esxi管理存儲伺服器 發布:2025-01-12 01:25:59 瀏覽:767
在烏班圖搭建web伺服器 發布:2025-01-12 01:25:24 瀏覽:390
浙江省開票軟體升級版伺服器地址 發布:2025-01-12 01:15:57 瀏覽:203
蘋果電腦怎麼進入電腦伺服器 發布:2025-01-12 01:08:49 瀏覽:731
安卓平板怎麼設置隔空刷抖音 發布:2025-01-12 01:08:12 瀏覽:392
手機設備存儲是什麼 發布:2025-01-12 01:03:45 瀏覽:906