验证 结构体指针与自增运算符

#include <stdio.h>
#include <stdlib.h>

int main() {

 struct student {
  char *name;
  int score;
 };

 struct student st = {"Brian", 97};
 struct student *ptr = &st;

 printf("ptr->name = %s\n", ptr->name);
 printf("*ptr->name = %c\n", *ptr->name);
 printf("*ptr->name++ = %c\n", *ptr->name++);//获取首地址字符后,将name指针友谊一位,指向r
 printf("*ptr->name = %c\n", *ptr->name);
 printf("ptr->score = %d\n", ptr->score);
 printf("ptr->score++ = %d\n", ptr->score++);
 printf("ptr->score = %d\n", ptr->score);
 return 0;
}

1. ptr->name,等同于打印(*p).name。

2. *ptr->name,因为->的优先级高于*,所以相当于: *(ptr->name)。即指针首地址的那个字符。

3. *ptr->name++,由于*和++的优先级相同,而且结合性是由右至左,所以相当于: *((ptr->name)++),即获取首地址字符后,将name指针右移一位。(当前打印还是首地址的值)

4. *ptr->name,此处为验证上一步的指针位置。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏吴伟祥

Spring4的新特性 Bean Validation1.1

603
来自专栏Java成神之路

PHP中 对象自动调用的方法:__set()、__get()、__tostring()

 (1)__get($property_name):获取私有属性$name值时,此对象会自动调用该方法,将属性name值传给参数$property_name,通...

964
来自专栏爱撒谎的男孩

Struts2之类型转换器

3615
来自专栏SpringBoot

MongoDB基本数据类型

923
来自专栏架构说

实现多态必须满足什么条件

3 虚函数机制 virtual mechanism 先看代码: class A { public: virtual void print() { cout...

2767
来自专栏数据存储

MySQL中用快速为select结果加序号

set @a=0;select @a:=@a+1,user,host from mysql.user;

2265
来自专栏java架构师

WCF学习笔记(三)

今天遇到了一个很牛X的问题,多人一起解决很久,无果。 然,锲而不舍,一下午,从网络海洋里捞啊捞,终于觅得善果。 感谢这位大神,原文地址:http://hi.ba...

2746
来自专栏前端儿

ES6笔记(5)-- Generator生成器函数

Generator的声明方式类似一般的函数声明,只是多了个*号,并且一般可以在函数内看到yield关键字

861
来自专栏cs

spring中bean的知识点1.0

五种作用域中,request、session和global session三种作用域仅在基于web的应用中使用

784
来自专栏JAVA高级架构

Java面试题合集

1.抽象类与接口的区别是什么? 一个类可以实现多个接口,但是只能继承以及抽象类。类如果要实现一个接口,它必须要实现接口声明的所有方法。但是,类可以不实现抽象类声...

36410

扫码关注云+社区