C结构体指针访问结构成员-创新互联

 1 #include 
 2 
 3 struct Payload {
 4   char* title;
 5   char* data;
 6 };
 7 
 8 char* extractData(struct Payload *payload);
 9 
10 int main(int argc, char const *argv[])
11 {
12   struct Payload payload;
13     
14     payload.title = "content-type";
15     payload.data = "text/html";
16 
17   char* data = extractData(&payload);
18     printf("%s
", data);
19 
20   return 0;
21 }
22 
23 
24 char* extractData(struct Payload *payload) {
25   if (NULL == payload) {
26 return 0;
27     }
28     
29   return payload->data;
30 }
程序2:C结构体指针访问结构成员
#include 

struct User
{
char* name;
int age;
};
    

char* name(struct User *user) {
   // 传地址,访问成员需要用 -> return user->name; } char* another_name(struct User *user) {
  // 或者 dereference 后,得到结构体然后用 . return (*(user)).name; } void main() { struct User user = {"h", 11}; char* real_name = name(&user); printf("%s ", real_name); printf("================ "); char* another_real_name = another_name(&user); printf("%s ", another_real_name); printf("%zu ", sizeof(real_name)); }

指针的size 与指向位置实际存储大小无关,而是与操作系统有关,64位机器, 返回8, 32位机器返回4;

创新互联专注于企业营销型网站建设、网站重做改版、襄汾网站定制设计、自适应品牌网站建设、HTML5建站商城网站建设、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为襄汾等各大城市提供网站开发制作服务。
名称栏目:C结构体指针访问结构成员-创新互联
文章位置:http://scyanting.com/article/doside.html