QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 942|回复: 4

向各位大侠请教一个问题,关于linux的c语言

[复制链接]
发表于 2006-3-6 10:53:37 | 显示全部楼层 |阅读模式
01        /*
02        File name: access-control.cpp
03        */
04        #include <iostream>
05        using namespace std;
06       
07        Class Reader
08        {
09        private:
10           char name[10];
11        public:
12          long index;
13       
14          char * get_name () { return name;}
15          void set_name (char * i_name);

16        };
17       
18        void Reader :: set_name (char * i_name)
19        {
20           strcpy ( name i_name);
21        }
22       
23        int main ()
24        {
25          Reader A_Reader;
26          char name[10];
27       
28          Cout << ”Please input your name ?”
29          Cin >> name ;;
30       
31          A_reader.index = 1;
32       
33          A_reader.set_name(name);
34       
35          cout << “your name is”;
36          cout << A_Reader.get_name()
37          cout << “ . ( index “ << A_Reader.index;
38          cout << “)” <<endl;
39       
40          return 0;
41        }
请假各位大侠,为什么这个程序要在14,15行里加入星号*,难道这里需要用指针吗?这里用指针,那33行读入的就应该是一个指针变量。可是我觉得它只是读入一个字符变量,那么这样做有什么意义?这个程序是教科书上的,我觉得应该没有错。但就是想不通,请大家帮忙解释一下,现在很困惑。

谢谢大家
发表于 2006-3-6 12:44:54 | 显示全部楼层
char *name;
name就是指针变量
name[x]才是字符变量
回复

使用道具 举报

 楼主| 发表于 2006-3-6 14:00:59 | 显示全部楼层
我还是不明白,因为15行里的函数声明是写着set_name (char * i_name),但是33行写的就是A_reader.set_name(name),这样两这不就不符了吗,这样怎么解释。
回复

使用道具 举报

发表于 2006-3-6 14:52:42 | 显示全部楼层
15行是定义。
回复

使用道具 举报

 楼主| 发表于 2006-3-6 20:39:47 | 显示全部楼层
我再看看,我还是没弄懂,谢谢mozilla,你写的比较简单,我再看看
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-2 22:25 , Processed in 0.048923 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表