关于结构体、数组与指针的分析
时间:2021-08-23
本文章向大家介绍关于结构体、数组与指针的分析,主要包括关于结构体、数组与指针的分析使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
#include <iostream>
using namespace std;
struct student{
int age;
int score;
};
void structDemo(student *s){
cout<<s->age<<endl;
}
int main(){
struct student s1 = {19,80};
structDemo(&s1);
student *sp = &s1;
student &ss = s1;
sp->age = 80;
ss.age = 90;
cout<<s1.age<<endl;
cout<<"——————————啦啦啦,我是分割线——————————"<<endl;
//下面是数组和指针的代码
int a[] = {3,45,345,4,5,4};
int *ap = a;
cout<<a[0]<<endl;
ap[0] = 99;
cout<<a[0]<<endl;
cout<<*(ap+1)<<endl;
cout<<*a<<endl;
return 0;
/* 1.试分析21行和30中初始化指针时,赋值方式不同的原因:
* 因为21行中的指针是student类型数据的指针,要储存的数据是student类型数据的地址,
* 所以在要传递地址的变量名前需要添加&。
* 而30行中的指针是用来储存int类型数据的指针,而我们要传递的地址是数组的首地址,也就是
* 数组名,所以就不需要在数组名前添加&。
*
* 2.试分析22行中用指针修改student类型数据时,不需要使用解引用符的原因:
* 固定形式,指针名->结构体成员
*
* 3.24行ss为结构体变量s1的引用,赋值运算符的左值,在本质上是s1的地址,所以
* 可以直接用“.属性”的形式调用s1的属性并且直接修改变量的数据。
*
* 4.数组的指针储存的是数组的首地址,而数组名也代表着数组首地址,从这个角度上看,数组名本身
* 就是一个指针,也可以从35行代码中看出。所以,对于某一数组的指针,存在用下标表示数组元素和
* 用解引用符加地址值的加减表示数组元素的两种方式,当然,对于数组本身来说也可以使用这两种方式
* 来表示数组元素。
*
* */
}
原文地址:https://www.cnblogs.com/zhuojiubuhejiu/p/15177402.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- LeetCode 103. 二叉树的锯齿形层次遍历
- 我是怎么一步一步调试出来二叉树的遍历(超精彩配图),二叉树遍历再也不用愁了
- 重中之重的二分查找
- LeetCode 剑指Offer 面试题27. 二叉树的镜像
- 一文搞定选择排序算法
- 一文搞定冒泡排序算法
- 剑指Offer LeetCode 面试题25. 合并两个排序的链表
- LeetCode 20200601 打卡 1431. 拥有最多糖果的孩子
- 剑指Offer LeetCode 面试题24. 反转链表
- 剑指Offer LeetCode 面试题22. 链表中倒数第k个节点
- 剑指Offer LeetCode 面试题18. 删除链表的节点
- 剑指Offer LeetCode 面试题06. 从尾到头打印链表
- 最详细的docker中安装并配置redis
- 剑指Offer LeetCode 面试题59 - I. 滑动窗口的最大
- 剑指Offer LeetCode 面试题58 - II. 左旋转字符串