你贴出的是两段代码,"///"注释上方的那段是错误的,因为:
上面那段代码结构体中 szName和szPassword这两个变量的【字符】型的。而你在main()函数中给这两个变量赋的值(用【双引号】括在里面的值在C语言里认为是字符串。)是【字符串】型,尝试把字符串赋值给字符型的变量,所以出错,而nlevel是整形,你在main函数里面赋的值也是整形,所以无错。
相关知识:
你在结构体里面定义的 szName 和 szPassWord如果是 char类型的话,表示这两个变量存储的是【字符】。而【字符】通常指的是【单个英文字母】、【符号】或【数字】等(就是可以ASCII码表里面表示的东东),字符赋值的时候用【单引号】括起你要赋的值,如【 char letter = ‘A’; 】表示把A赋给字符型变量letter,【字符串】指的是由若干个【字符】组成的串。在C语言里用指针【char *】表示字符串,赋值时用【双引号】括起你要赋的值。如【char *name = " Ass"】。
#include "stdafx.h"
#include "iostream.h"
struct COperator
{
char szName; //这里不用指针
char szPassWord; //这里不用指针
int nlevel; //
};
int main(int argc, char* argv[])
{
COperator user;
user.szName = "FUCK";
user.szPassWord = "FUCK YOU!";
user.nlevel = 99;
cout<
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "iostream.h"
struct COperator
{
char* szName; //这里为什么要用指针
char* szPassWord; //这里为什么要用指针
int nlevel; //而整型的却不用呢
};
int main(int argc, char* argv[])
{
COperator user;
user.szName = "FUCK";
user.szPassWord = "FUCK YOU!";
user.nlevel = 99;
cout<
}
错误提示: cannot convert from 'char [5]' to 'char'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
采纳率:40% 10级 2013.02.25 指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的 类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。
先声明几个指针放着做例子:
例一:
(1)int*ptr;
(2)char*ptr;
(3)int**ptr;
(4)int(*ptr)[3];
(5)int*(*ptr)[4];
指针涉及到数据结构。