a98 发表于 2018-2-28 19:13:12

结构体成员定义问题

#include<stdio.h>

struct node
{
        float x, y;
        char s;
}point, *p = &point;

void main()
{
        p->s = "a";
        printf("%s\n", p->s);
}




想问一下         p->s = "a"; 这句应该怎么改呢?



还有p->x = 2.0      (*p).y = 3.0      point.x = 2.0      这三个表达式是不是都是正确的呀?


最帅的老饼 发表于 2018-2-28 19:36:11

本帖最后由 最帅的老饼 于 2018-2-28 19:39 编辑

#include<stdio.h>

struct node
{
      float x, y;
      char s;
}point, *p = &point;

void main()
{
      p->s = 'a';
      printf("%c\n", p->s);
      
      p->x = 2.0 ;
      printf("%f\n", p->x);
      
               (*p).y = 3.0 ;
                printf("%f\n", p->y);
                printf("%f\n", point.y);
                  
                point.x = 4.0 ;
                printf("%f\n", p->x);
}


输出:
a
2.0000
3.0000
3.0000
4.0000

a98 发表于 2018-2-28 20:07:25

最帅的老饼 发表于 2018-2-28 19:36
#include

struct node


能不能再问一下如果想输出字符串应该怎么写呢

BngThea 发表于 2018-3-1 09:01:41

想问一下         p->s = "a"; 这句应该怎么改呢?
你想要实现什么?如果是给结构p的s进行赋值,可以直接赋值即可



还有p->x = 2.0      (*p).y = 3.0      point.x = 2.0      这三个表达式是不是都是正确的呀?
都对

a98 发表于 2018-3-1 12:11:25

BngThea 发表于 2018-3-1 09:01
想问一下         p->s = "a"; 这句应该怎么改呢?
你想要实现什么?如果是给结构p的s进行赋值,可以直接 ...

我想给结构体p的s赋值字符串应该怎么写呢

BngThea 发表于 2018-3-1 12:13:39

a98 发表于 2018-3-1 12:11
我想给结构体p的s赋值字符串应该怎么写呢

可以用strcpy函数

a98 发表于 2018-3-1 12:26:48

BngThea 发表于 2018-3-1 12:13
可以用strcpy函数

嗯可以 谢谢

最帅的老饼 发表于 2018-3-2 00:14:20

本帖最后由 最帅的老饼 于 2018-3-2 00:19 编辑

在C 中其实没有字符串,字符串只是 char组数 只是在数组尾加个 '\0'

例如:
#include <stdio.h>

int main()
{
char a= {'a','b','c','d','e','f','g','h'};

char b= {'a','b','c','d','e','f','g','\0'};

char c= {'a','b','c','d','e','f','g',0};

char d="abcdefg";

char e="abcdefgh";

printf ("char a[]=%s\n", &a);
printf ("char b[]=%s\n", b);
printf ("char c[]=%s\n", c);
printf ("char d[]=%s\n", d);
printf ("char e[]=%s\n", e);

return 0 ;
}

b c d这3个数组的内容是一样的,它们的输出都是一样。

数组 a 和 e输出都不正常,因为printf ( ) 的 %s 输出是直到 0 才停止 ,但数组 a和 e 最后一位都不是 0 。

a98 发表于 2018-3-2 21:03:02

最帅的老饼 发表于 2018-3-2 00:14
在C 中其实没有字符串,字符串只是 char组数 只是在数组尾加个 '\0'

例如:


嗯谢谢
页: [1]
查看完整版本: 结构体成员定义问题