结构体成员定义问题
#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: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 最帅的老饼 发表于 2018-2-28 19:36
#include
struct node
能不能再问一下如果想输出字符串应该怎么写呢 想问一下 p->s = "a"; 这句应该怎么改呢?
你想要实现什么?如果是给结构p的s进行赋值,可以直接赋值即可
还有p->x = 2.0 (*p).y = 3.0 point.x = 2.0 这三个表达式是不是都是正确的呀?
都对 BngThea 发表于 2018-3-1 09:01
想问一下 p->s = "a"; 这句应该怎么改呢?
你想要实现什么?如果是给结构p的s进行赋值,可以直接 ...
我想给结构体p的s赋值字符串应该怎么写呢 a98 发表于 2018-3-1 12:11
我想给结构体p的s赋值字符串应该怎么写呢
可以用strcpy函数 BngThea 发表于 2018-3-1 12:13
可以用strcpy函数
嗯可以 谢谢 本帖最后由 最帅的老饼 于 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 。 最帅的老饼 发表于 2018-3-2 00:14
在C 中其实没有字符串,字符串只是 char组数 只是在数组尾加个 '\0'
例如:
嗯谢谢
页:
[1]