A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lixp 中级黑马   /  2015-10-30 17:57  /  1138 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#include<stdio.h>
int main(int argc,char *argv[]){
        //1.定义一个结构体
        struct student{
                char name[50];
                int score;
        } ;//封号一定不能忘
        //2.定义一个结构体变量,并且初始化
        struct student stu={"lixp",98};
        //3.定义一个指针变量,指向初始化的结构体
        struct student *ptr=&stu;
        printf("*ptr->name++=%c\n",*ptr->name++);//本来应该是这样用的,得到的应该是i字符,但是这样子编译的时候会报错 各位大神看一下咋回事啊
                return 0;
}

10 个回复

倒序浏览
加油,海马
回复 使用道具 举报
#include <stdio.h>

int main(int argc,char *argv[]){
    //1.定义一个结构体
    struct student{
        char name[50];
        int score;
    } ;//封号一定不能忘
    //2.定义一个结构体变量,并且初始化
    struct student stu={"lixp",98};
    //3.定义一个指针变量,指向初始化的结构体
    struct student *ptr=&stu;
    char *p = ptr->name;
    printf("*ptr->name=%c\n",*(++p));//本来应该是这样用的,得到的应该是i字符,但是这样子编译的时候会报错 各位大神看一下咋回事啊
    return 0;
}

回复 使用道具 举报
你执行的ptr->name++,一次++ 是50个char的长度
回复 使用道具 举报
另外,++p和p++的区别,你编译一下,就能看到不同的结果
回复 使用道具 举报
看不懂啊
回复 使用道具 举报
zyios 中级黑马 2015-10-31 21:06:48
7#
现在知道答案了吗
回复 使用道具 举报
lixp 中级黑马 2015-11-2 19:50:55
8#
还是不行。。。
回复 使用道具 举报
chensc 金牌黑马 2015-11-2 20:00:19
9#
学习学习!
回复 使用道具 举报
谁在放荡 来自手机 中级黑马 2015-11-3 01:04:56
10#
自增运算符此处不能用,p->name是个常量,不能这样运算吧,单是指针p可以,因为它是变量,还有即使++,也应该放在前面,直接加1取*吧
回复 使用道具 举报
学习学习
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马