| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 634 人关注过本帖
标题:引用问题,求大神解答
只看楼主 加入收藏
wengbin
Rank: 10Rank: 10Rank: 10
来 自:陕西西安
等 级:贵宾
威 望:19
帖 子:370
专家分:1846
注 册:2015-5-8
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:5 
引用问题,求大神解答
//想通过调用resetString(string& )和resetStringArray(string& arr[][2])函数改变主函数中已经定义好的字符串和字符串数组,可结果是只有字符串能顺利改变。数组部分编译失败。求大神教导
#include<iostream>
#include<string>
using namespace std;

void resetString(string& );
void resetStringArray(string& arr[][2]);

int main()
{
/*----------------------------------*/
    string ss="WENG";
    cout<<"before:\n"<<ss<<endl;
    resetString(ss);
    cout<<"after:\n"<<ss<<endl;//可顺利运行;
/*--------------------------------*/

    string arr[2][2]={{"a","b"},{"c","d"}};
    cout<<"before:\n"<<endl;
    for(int i=0;i<2;i++)
        {
            for(int j=0;j<2;j++){cout<<"\t"<<arr[i][j];}
            cout<<endl;
        }
    resetStringArray(arr[2][2]);

    cout<<"after:\n"<<endl;
    for(int i=0;i<2;i++)
        {
            for(int j=0;j<2;j++){cout<<"\t"<<arr[i][j];}
            cout<<endl;
        }
    system("pause");
    return 0;
}

void resetString(string& a){a="HUANG";}
void resetStringArray(string& arr[][2]){arr[][2]={{"d","c"},{"b","a"}};}

[ 本帖最后由 wengbin 于 2015-9-24 11:16 编辑 ]
搜索更多相关主题的帖子: 字符串 before include 
2015-09-24 11:03
wengbin
Rank: 10Rank: 10Rank: 10
来 自:陕西西安
等 级:贵宾
威 望:19
帖 子:370
专家分:1846
注 册:2015-5-8
收藏
得分:0 
没有void resetStringArray(string& arr[][2])调用,函数可以运行,求指导是哪里出了问题

[ 本帖最后由 wengbin 于 2015-9-24 11:18 编辑 ]
2015-09-24 11:15
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9032
专家分:54066
注 册:2011-1-18
收藏
得分:10 
我有强迫症,看到不好的东西就想将它改到正道上

程序代码:
#include <iostream>
#include <string>
using namespace std;

void ResetStringArray( std::string (&arr)[2][2] );

template<typename T, size_t M, size_t N>
void PrintArray( const T (&arr)[M][N] )
{
    for( size_t i=0; i!=M; ++i )
    {
        for( size_t j=0; j!=N; ++j )
            cout << '\t' << arr[i][j];
        cout << '\n';
    }
}

int main( void )
{
    string arr[2][2] = { {"a","b"}, {"c","d"} };

    cout << "before:\n";
    PrintArray( arr );

    ResetStringArray( arr );

    cout << "after:\n";
    PrintArray( arr );

    return 0;
}

void ResetStringArray( std::string (&arr)[2][2] )
{
    arr[0][0] = "d";
    arr[0][1] = "c";
    arr[1][0] = "b";
    arr[1][1] = "a";
}

2015-09-24 13:58
wengbin
Rank: 10Rank: 10Rank: 10
来 自:陕西西安
等 级:贵宾
威 望:19
帖 子:370
专家分:1846
注 册:2015-5-8
收藏
得分:0 
回复 3楼 rjsp
谢谢,打印函数的代码让我受教了
2015-09-24 15:19
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9032
专家分:54066
注 册:2011-1-18
收藏
得分:0 
以下是引用wengbin在2015-9-24 15:19:37的发言:
谢谢,打印函数的代码让我受教了

你看那个不相干的东西干什么呀?看其他的
2015-09-24 19:17
农民工
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:21
帖 子:109
专家分:639
注 册:2015-8-22
收藏
得分:0 
嗯,看数组是怎么引用传递的
2015-09-30 16:43
快速回复:引用问题,求大神解答
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039242 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved