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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 曹雨 中级黑马   /  2014-7-25 09:19  /  1544 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

    struct Person{int age};
     struct Person person = {3};
     struct Person *personP = &person;
为什么不
struct Person *personP = {3};?
如果这句可以的话 ,代表一个指向无名结构体{3}的指针*personP 对吗?

5 个回复

倒序浏览
如果这句可以的话 ,代表一个指向无名结构体{3}的指针*personP 对吗?
楼主,这句话是错误的
不能够直接对结构体指针这样初始化

struct Person person = {3}; 这样是对的,这是对结构体进行初始化

如果是结构体指针,就不能这样用了,必须先分配内存给这个指针,然后再对其内容进行赋值!
回复 使用道具 举报
当然不对了,&person是地址,{3}是什么。
回复 使用道具 举报
你流程走完了没有,貌似我2期去不了了
回复 使用道具 举报
不对,这个初始化和直接给指针赋值是不一样的
回复 使用道具 举报
关于指针 *的作用:
*作用:1、当用在变量定义的时候,他是一个类型说明符,说明定义的这个变量是一个指针变量
         2、在不是变量定义的时候,它是一个操作符,访问指针变量所指向的存储空间
   &作用:&它一个操作符,取出变量的地址
   当用作操作符的时候 * 与 &是一对反操作
结构体指针:定义一个结构体类型的指针,1.  struct Person{int age};首先定义一个Person 的结构体类型。2.struct Person person = {3};是一个定义结构体变量的一个过程 3.struct Person *personP = &person;定义一个结构体类型的指针,首先指针类型只能给它赋值一个地址,而{3}不是地址,所以不可以。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马