|
using namespace std;
int OUTaaa(int INbbb, char* OUTccc, int* OUTddd);
//函数功能 根据 INbbb的值(入参) 返回 字符串OUTccc(出参) 数值OUTddd(出参) 及字符个数OUTaaa(出参) 的值
int OUTaaa(int INbbb, char* OUTccc, int* OUTddd)
{
if (INbbb==0)// 情况1
{
*OUTddd = 888;
OUTccc = "0000abcd\0";// 情况1 字符串个数不定
}
else if (INbbb==1)// 情况2
{
*OUTddd = 999;
OUTccc = "1111abcd\0";// 情况2 字符串个数不定
}
else
{
}
return strlen(OUTccc);// 返回字符的长度
}
int main()
{
int aa = 0, bb = 1;
char cc = 'A';
//char *cc = "cCcC";
//string cc = "runoob";
int dd = 0;
aa = OUTaaa(bb, &cc, &dd);// 调用函数
//为什么函数 cc 总是返回A ,不返回函数中我给它的值
cout << aa << " 是aa的值" << endl;
cout << bb << " 是bb的值" << endl;
cout << cc << " 是cc的值 字符个数是"<< endl;
cout << dd << " 是dd的值" << endl;
return 0;
}
本帖最后由 screen_ok 于 2022-1-23 06:54 编辑
按照你的意图 OUTaaa 应该是这样的:
- int OUTaaa(int INbbb, char** OUTccc, int* OUTddd)
- {
- if (INbbb == 0) // 情况1
- {
- *OUTddd = 888;
- *OUTccc = "0000abcd"; // 情况1 字符串个数不定
- }
- else if (INbbb == 1) // 情况2
- {
- *OUTddd = 999;
- *OUTccc = "1111abcd"; // 情况2 字符串个数不定
- }
- else
- {
- }
- return strlen(*OUTccc); // 返回字符的长度
- }
- int main()
- {
- int aa = 0, bb = 1;
- char* cc = "runoob";
- int dd = 0;
- aa = OUTaaa(bb, &cc, &dd);// 调用函数
- cout << aa << " 是aa的值" << endl;
- cout << bb << " 是bb的值" << endl;
- cout << cc << " 是cc的值 字符个数是"<< endl;
- cout << dd << " 是dd的值" << endl;
- return 0;
- }
复制代码
C程序中的字符串常量都是被放在 CONST 段中的,大概像这样:
CONST SEGMENT
@runoob DB 'runoob',00H
@0000abcd DB '0000abcd', 00H
@1111abcd DB '1111abcd', 00H
@s_cc DB ' 是cc的值 字符个数是', 00H
……
CONST ENDS
你的程序就是要给一个指针变量赋值。
|
上一篇: 编译VC6.0代码报错下一篇: win32DLL工程, 定时 TCP发送字符串 编译不通过
|