c++的一些问题

[复制链接]
查看11 | 回复3 | 2010-6-4 21:51:39 | 显示全部楼层 |阅读模式
#include
struct str1 {
char c[5];
char *s;
};
main( )
{
struct str1 s1[2] = { {"ABCD","EFGH"},{"IJK","LMN"} };
struct str2
{
struct str1 sr;
int d;
} s2 = { "OPQ","RST",32767 };
struct str1 *p[2];
p[0]=&s1[0];
p[1]=&s1[1];
couts;
couts;couts);couts; 通过优先级,可将该表达式改写成:couts);应该明白的是p[1]是一个指向struct str1的一个指针,而p[1]->s表示p[1]所指向的str1的一匿名对象的一个成员s(s为指针),++(p
回复

使用道具 举报

千问 | 2010-6-4 21:51:39 | 显示全部楼层
// 12.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include struct str1 { char c[5];char *s;};//这个结构体有两个成员,两个字符串
回复

使用道具 举报

千问 | 2010-6-4 21:51:39 | 显示全部楼层
这题就是在那个struct str2{ struct str1 sr;int d;} s2 = { "OPQ","RST",32767 }中定义的呢.这题是先求couts先是使平p[1]->s指向了'L'的,++为加1指向了‘M'点,然后是cout即输出m以及后面的char。即为”MN';再看第二个语句cout<<
回复

使用道具 举报

千问 | 2010-6-4 21:51:39 | 显示全部楼层
哈哈,这个你要头脑转一下,思路是这样的,一个结构在另外一个结构中以成员变量出现,知道什么意思吗?sr.c[2]这个东西其实是一个东西来的,然后s2是str2结构的对象,对象调用结构里面的成员变量,这时候看明白了吧。思维发散一点,告诉你,我可是自学的哦。哈哈。
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行