指针、结构体

指针的应用,根据数据可分为变量和常量占有一定数目连续的储存单位,以首地址作称为数据的地址。变量的地址称为指针,存放地址的变量称为指针变量。指针也是一种变量,也占有储存单位 特殊之处在于它存放是另一个变量所占存储单位的起始地址。 
定义初始化  intx=10 ,*p=&x,反之错误
对于复杂形式的指针的判断,找到标示符,由关键字向右看遇到)就向左...遇到( 就是函数。
int (*p ) [3] ;  double * p [5] ;    int *p ( float a);    
指向数组的整形指针,存储指针的 double型数组,返回值为int地址的指针函数;
 pc=s对字符指针变量pc赋值时期指向s数组
pc+i 结果为pc后面第i个元素的地址
*(pc+1)        为pc后面第i个元素

*++pc     为pc加1之后所指向的元素

 ++*pc      为pc所指向元素加1
*pc++  pc所指向的元素,然后pc加1
 (*pc)++ pc所指向的元素  然后pc所指向元素加1
&pc  为字符指针pc的地址 ,类型为char**

结构体的声明  
1.  struct   结构类型名 {
   成员声明表 
};
  数据类型1 成员名11,.... 成员名1k;

2.每个声明允许用逗号为分隔符说明多个同类型的成员变量。

3.同一结构内成员不能同名,但可以与外部变量同名。成员数据类型可以是除本结构类型以外的其它任何类型。

4.结构类型和结构变量分别声明 存储类型 struct 结构类型名 结构变量列表
extern static auto  register  int——node a,b,c;

5.同时声明  存储类型 struct {成员声明表}结构变量列表;
static struct point {                 typedef struct point {
int x;                                     int x;
int y;                                    int y;
}p1,p2;                                  }point;

6.结构变量的初始化 
struct stu_study{char num[5];
char name[9];char sex;
int English;
int math,physics,C;
}wang={"1234",wangwu",‘m‘,81,92,76,85};

7.结构体的引用包括对结构变量的引用和对结构变量成员的引用俩方面。
对结构变量的引用包括结构变量的复制操作和间访操作,以及结构变量作为函数的参数及返回值。  对结构变量中的成员引用则需要通过成员选择运算符“.”来实现

8.通过成员选择运算符“->”访问结构变量的成员
结构指针名 -> 结构成员名
下面表达式是指针pm所指变量的结构成员m的年份成员year的引用;
pm->pa->year     m.a.year
(*pm).pa->year   m.pa->year
pa->a.year          (*pm->pa).year
(*m.pa).year       (*(*pm).pa).year
它们的数据类型都是int型值则由成员year的值决定。

指针、结构体

时间: 2024-11-10 01:19:19

指针、结构体的相关文章

C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com

原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 本文由 arthinking 发表于315 天前 ⁄ itzhai.com原创文章 ⁄ C语言 ⁄ 评论数 3 ⁄ 被围观 1,775 views+ 指针数组: 在一个数组中,如果它的元素全部都是指针类

Go-常识补充-切片-map(类似字典)-字符串-指针-结构体

目录 Go 常识补充 Go 命名 打印变量类型科普 _ 关键字 命名规范相关 包目录规范 切片 多维切片 切片初始化的方法 多维切片初始化 切片删除元素(会略微影响效率 ,少用) copy 函数 打散切片 循环打印多维切片 Map (类似 python 字典) map 定义及初始化 赋值.取值.改值 map 删除元素.参数传递 map 相等比较.循环遍历 字符串 字符串的定义.长度.遍历字节.字符 指针 向函数传递指针参数 传递数组指针 (最好是用切片) 结构体 结构体零值 匿名结构体 结构体指

2015.12.13 二维数组 函数指针 结构体

先说一下指针的用途:1.访问函数,在函数内部需要改变外部传入内部的值:2.函数中需得到一个连续存储空间的首地址:3.动态分配内存,需要记录分配内存的首地址.说穿了,指针的用途就是和地址相关的. 二维数组 定义方法 ①int temp1 [2][3] = {}; 第一个中括号是“行”,第二个中括号是“列”. ②int temp2 [][3] = {1,2,3,4,5,6}; “列数”不需要明确指出. ③int temp3 [2][3] = {1,2,3,4}; 后两个元素为0. char *nam

typedef struct 指针结构体使用方法

A>>>>>>>>>>>>>>>>>>>>>>>> typedef struct                {                    ...                    ...                }POINT,*POINT_P;  POINT为结构名,这个名字主要是为了在结构体中包含自己为成员变量的时候有用        

Hihocoder #1014 : Trie树 (字典数树统计前缀的出现次数 *【模板】 基于指针结构体实现 )

#1014 : Trie树 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进. 这一天,他们遇到了一本词典,于是小Hi就向小Ho提出了那个经典的问题:“小Ho,你能不能对于每一个我给出的字符串,都在这个词典里面找到以这个字符串开头的所有单词呢?” 身经百战的小Ho答道:“怎么会不能呢!你每给我一个字符串,我就依次遍历词典里的所有单词,检查你给我的字

C语言之以函数指针结构体方式实现面向对象的思想

在一些嵌入式项目中,我们会遇到一个大模块的处理会涉及到很多模块函数封装,但是由于函数过多往往会不易于模块化和管理,如果引入面向对象中类的思想就会好解决的多,但是C不支持面向对象的实现,所以我们可以利用函数指针的方式来进行模拟类的实现,可参考下例: 此处附上Linux编译器下执行后的打印信息: 这样,我们就实现了模块话的处理,更方便我们进行模块管理,当然,重要是掌握这种思想. 但是,需要注意: 这类方法只支持附带内存管理的MCU可运用这样的思想,比如支持Linux内核的MCU.为何这样说呢,因为此

c语言指针数组和结构体的指针

指向数组的指针,先初始化一个数组,使用传统方式遍历 1 void main() 2 { 3 int a[5] = { 1,2,3,4,5 }; 4 for (int i = 0; i < 5; i++) 5 { 6 printf("%d,%x\n", a[i], &a[i]); 7 printf("%d,%x\n",*(a+i),a+i); //等价 a[i] , &a[i] 8 } 9 } a就是数组a的首地址,即元素1的地址, a + 1

C语言--- 高级指针2(结构体指针,数组作为函数参数)

一.结构体指针 1. 什么是结构体指针?指向结构体变量的指针     结构体:     typedef  struct stu{                          char name[20];                          char sex;                          int age;                    }Student;     Student stu1 = {"zhangsan",'m',23};  

结构体指针概要

结构体指针 指针当做函数参数 数组当做函数参数 1.结构体指针 指向结构体变量的指针.称为结构体指针 Student stu ={0}; Student *p = &stu; Student  * 结构体指针类型(类型), p结构体指针变量(变量名); &stu 结构体变量地址(初值) (*p).sex = 'm'; p->sex= 'm'; (*p)对指针取值后是结构体变量,.sex是访问成员变量 使用指针可以指向操作符直接访问结构体成员p->sex 1.结构体指针 结构体指

结构体指针传参与返回值

结构体指针 结构体指针大家想必都非常清楚,我们也一直强调传参的时候使用结构体指针(占用4字节),减少对栈的压力.但是今天看linux的标准io时候.发现了localtime时间函数 返回值是一个结构体指针.当时有点懵逼了,开始觉得这样就不对.{当然肯定是我想多了} 为什么会觉得不对那?因为它是个子函数,返回一个局部变量的地址显然是没有价值的.函数调用完就被释放了呀.你在用指针承接也没有价值,完全是野指针啊.百度了一下还真的有人在么做,结果出现了问题.但是其实我的想法是错误的.人家大神怎么可能犯这