[问题] 请问struct内字符阵列给初始值的问题

楼主: hbzncu (阳光棕梠)   2014-04-24 03:37:35
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
Dev C++
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
想请问在自订struct内的字符阵列给初始值的问题
喂入的资料(Input):
预期的正确结果(Expected Output):
错误结果(Wrong Output):
程式码(Code):(请善用置底文网页, 记得排版)
typedef struct node{
char name[20];
int grade;
struct node *next;
}NODE;
int main(int argc, char *argv[]) {
NODE a;
*(a).name= "James";
a.name= "James";
a.grade= 100;
system("pause");
return 0;
}
补充说明(Supplement):
想请问一下
1. 为何a.grade= 100; 这样的宣告是正确,但是a.name= "James"; 这样的宣告是错误?
为什么struct里的字符阵列无法直接把字串给予?
2. *(a).name= "James"; 这样的宣告会出现警告?
3. 对于struct内的字符阵列该如何给初始值才是正确?
作者: prismwu   2014-04-24 03:41:00
1. 字符阵列宣告好之后也不能用等于赋值 跟struct无关2. 因为a不是指标3. 同1跟struct无关,可以用strcpy复制进去
作者: yvb   2014-04-24 03:48:00
NODE a = { "James", 100, };
楼主: hbzncu (阳光棕梠)   2014-04-24 22:50:00
感谢解答!

Links booklink

Contact Us: admin [ a t ] ucptt.com