黑马程序员技术交流社区
标题:
关于指针与结构体的问题
[打印本页]
作者:
lixp
时间:
2015-10-30 17:57
标题:
关于指针与结构体的问题
#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;
}
作者:
heiHorse
时间:
2015-10-30 18:24
加油,海马
作者:
YeGuangjin
时间:
2015-10-31 18:23
#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;
}
作者:
YeGuangjin
时间:
2015-10-31 18:25
你执行的ptr->name++,一次++ 是50个char的长度
作者:
YeGuangjin
时间:
2015-10-31 18:27
另外,++p和p++的区别,你编译一下,就能看到不同的结果
作者:
wzf2015
时间:
2015-10-31 18:38
看不懂啊
作者:
zyios
时间:
2015-10-31 21:06
现在知道答案了吗
作者:
lixp
时间:
2015-11-2 19:50
还是不行。。。
作者:
chensc
时间:
2015-11-2 20:00
学习学习!
作者:
谁在放荡
时间:
2015-11-3 01:04
自增运算符此处不能用,p->name是个常量,不能这样运算吧,单是指针p可以,因为它是变量,还有即使++,也应该放在前面,直接加1取*吧
作者:
tsc0000
时间:
2015-11-3 10:01
学习学习
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2