當前位置:首頁 » 編程語言 » c語言初始化結構體

c語言初始化結構體

發布時間: 2022-11-17 07:14:30

1. c語言memset初始化結構體問題

1.memset函數的原型void *memset(void *s, char ch,size_tn);

函數的第一個形式參數是指針類型,所以實參因為一個地址,即&a

注意&a與a是不同的.a是結構體變數名,而&a是變數a的地址.

2.另外memset()是一個庫函數函數,需要加頭文件#include<string.h>

3.正如你所說的全局與主函數內定義變數a是有一點區別

源代碼如下:

#include<stdio.h>
#include<string.h>

typedef struct ss
{
int num;
int dir[5][3];
}tent;

//tent a;

int main()
{
tent a;
printf("a=%p ",a); //輸出的是變數的地址

printf("&a=%p ",&a);//注意a與&a的區別
memset(&a,0,sizeof(a));
return 0;
}

  1. 主函數內運行結果:

這個沒警告的.

已上在VC6.0下的結果

為嘛第二個沒警告,暫時不清楚.但第一個有警告是合理的.

2. C語言結構體數組初始化```從鍵盤輸入

/*
先這樣改,看看,int型7/4=1的,結果當然不如你所料了。
按照奶茶的把%d的改過來了。那個float和double的也有道理,但用不著改了。還有,你的輸入寫的不是很好,最好一項一項的輸入,我就不改了。
*/
#include<stdio.h>
struct STUDENT{
char name[20];
int age;
char sex;
int weight;
};

float aver(struct STUDENT *q,int n);

main()
{
struct STUDENT a[4];
struct STUDENT *p;
int i;
float ave;
p=a;
printf("請輸入四個學生的數據:\n");
for(i=0; i<4; i++)
{
p=a;
printf("請輸入第%d個學生的姓名:\n",i+1);
gets((p+i)->name);
printf("請輸入第%d個學生的年齡,性別和體重:\n",i+1);
scanf("%d%c%d",&((p+i)->age),&((p+i)->sex),&((p+i)->weight));

}
ave=aver(p,4);
printf("四個學生的平均年齡是:%f",ave);
}

float aver(struct STUDENT *q,int n)
{
int i,sum;
float ping;

sum=0;
for(i=0; i<n; i++,q++)
{
sum+=q->age;
}
ping= (float)sum/n;
return(ping);
}

3. c語言如何對結構體某一成員初始化

結構體與類一樣可以定義一個構造函數。
如下:
struct s{
s(){
a=0;
}
int a;
};
每次聲明一個結構體變數時都會調用結構體的構造函數,在構造函數裡面添加初始化語句就可以了

4. 如何對結構體變數進行初始化

結構體初始化可以再定義時制定初始值,如:

struct
student

{

int num;

char name[20];

} student1 =
{10001,"zhangxin"};

也可以採取申明類型與定義變數分開的形式,在定義變數時進行初始化:

student student1 =
{10001,"zhangxin"} 。

在C語言中,結構體(struct)指的是一種數據結構,是C語言中聚合數據類型(aggregate data
type)的一類。

結構體可以被聲明為變數、指針或數組等,用以實現較復雜的數據結構。結構體同時也是一些元素的集合,這些元素稱為結構體的成員(member),且這些成員可以為不同的類型,成員一般用名字訪問

5. c語言結構體初始化(編譯系統vs2010)

.location 這種叫按名稱初始化,是gun對c的擴展,只有gnu支持,就是linux下的編譯器支持(gcc, g++)
程序員寫代碼的時候,最好使用被廣泛支持的標准,盡量不要使用個別編譯器的私有定義。

關注優酷上的 」C學習指南「,在第10章里會講這個問題。

6. 關於C語言結構體構造函數初始化的問題

#include<iostream>
#include<string>
using std::cout;
using std::string;
class A{
string a;
public:
A(string ab="1wggg"){a=ab;}
string geta(){return a;}
};
void main()
{
A b;
cout<<b.geta();
}

7. C語言結構體里的結構體怎麼初始化

中間又有結構體嵌套,你的格式應該是{{
..{}..},{..{}..},...}
其實一般不這么初始化,定義全局靜態變數或者指針,指針的話通過malloc分配內存,然後通過->訪問結構體成員,靜態變數的通過.訪問成員,然後賦值。

8. C語言結構體里的結構體怎麼初始化

方法是在定義變數的同時給其一初始值。結構體變數的初始化,遵循相同的規律。
簡單變數的初始化形式如下:
數據類型 變數名=初始化值;
例如,定義整型變數a,並給其初始化值10的語句如下
int a=10;
數組的初始化,需要通過一常量數據列表,對其數組元素分別進行初始化,形式如下:
數據類型 數組名稱〔數組長度〕={初始化值1,初始化值2,…, 初始化值n};
例如,定義長度為5的整型數組,並對其初始化的語句如下:
int A[5]={20,21,0,3,4};
結構體變數的初始化方式與數組類似,分別給結構體的成員變數以初始值,而結構體成員變數的初始化遵循簡單變數或數組的初始化方法。具體的形式如下:
struct 結構體標識符
{
成員變數列表;

};
struct結構體標識符 變數名={初始化值1,初始化值2,…, 初始化值n };
例如,定義struct Point類型變數,並初始化的語句如下:
struct Point oP1={0.0,0.2,0.3};
struct Point類型變數oP1的三個成員變數的值分別為
oP1.x=0.0,
oP1.y=0.2
oP1.z=0.3
由於定義結構體變數有三種方法,因此初始化結構體變數的方法對應有三種,上面已經介紹了其中的一種形式,其他兩種形式如下:
struct Point
{
double x;
double y;
double z;
} oP1={0.0,0.2,0.3}; struct
{
double x;
double y;
double z;
} oP1={0.0,0.2,0.3};
在初始化結構體變數時候,既可以初始化其全部成員變數,也可以僅僅對其中部分的成員變數進行初始化。例如:
struct Student
{
long id;
char name[20];
char sex;
}a= {0};
其相當於a.id=0;a.name=「」;a.sex=『\0x0』。
僅僅對其中部分的成員變數進行初始化,要求初始化的數據至少有一個,其他沒有初始化的成員變數由系統完成初始化,為其提供預設的初始化值。

9. c語言怎麼結構數據初始化

C語言
結構體類型
變數初始化分為
普通變數

數組變數
兩種形式,說明如下:
typedef struct
{
int x,y;
}
direction
;
direction dir={1,2} ; //普通變數,用一組{}括起來,成員變數數據間以逗號分隔,按變數定義順序對應數值。未賦值成員,默認填0
direction move[8]={ //數組變數,整體用一組{}括起來,每一個元素按普通變數格式進行書寫,各元素間用逗號分隔。未賦值元素,默認填0
{0,0},{0,1},{1,0},{1,1},
{2,0},{2,1},{3,0},{3,1}
};

10. c語言結構體初始化

你已經定義了一個mem1,下一句又定義了一個mem1,所以它會提示你多次定義了,應該把第二個struct Mem去掉吧

熱點內容
谷能壓縮機 發布:2025-01-13 15:44:30 瀏覽:412
電腦電腦直連通訊ftp 發布:2025-01-13 15:38:03 瀏覽:717
nvm存儲 發布:2025-01-13 15:36:19 瀏覽:552
京東架構師緩存經驗 發布:2025-01-13 15:33:00 瀏覽:726
android圖片顏色 發布:2025-01-13 15:26:09 瀏覽:268
國家稅務總局電腦伺服器 發布:2025-01-13 15:10:24 瀏覽:596
金立老款機的開機密碼是多少 發布:2025-01-13 15:04:45 瀏覽:456
湖南網上辦稅初始密碼多少 發布:2025-01-13 15:02:49 瀏覽:417
怎麼使用筆記本連接伺服器 發布:2025-01-13 15:02:48 瀏覽:705
長城cs75plus選哪個配置 發布:2025-01-13 14:54:05 瀏覽:22