c语言指针及结构体复习

c语言简单的指针

int main()
{

	int *p;

	int a = 90;

	p = &a;//将变量a的地址赋值给指针

	*p = 10;//通过指针修改内存上的值

	return 0;
}

c语言简单结构体

int main()
{
	//1. 定义结构体
	struct Person
	{
		int age;
		double height;
		char * name;
	};	

	//2.根据结构体类型,定义结构体变量
	struct Person p={20,1.55,"jack"};//第一种赋值

	//第二种赋值
	struct Person p1;
	p1.age = 30;
	p1.name = "rose";

	printf("age=%d, name=%s, height=%f\n",p1.age,p1.name,p.height);

}

第二种定义结构体

int main()
{
	//1. 定义结构体
	struct Person
	{
		int age;
		double height;
		char * name;
	} stu;	//此处直接定义

}

结构体访问方法

int main()
{
    struct Student
    {
        int no;
        int age;
    };
    // 结构体变量
    struct Student stu = {1, 20};

    // 指针变量p将来指向struct Student类型的数据
    struct Student *p;

    // 指针变量p指向了stu变量
    p = &stu;

    p->age = 30;

    // 第一种方式
    printf("age=%d, no=%d\n", stu.age, stu.no);

    // 第二种方式
    printf("age=%d, no=%d\n", (*p).age, (*p).no);

    // 第三种方式
    printf("age=%d, no=%d\n", p->age, p->no);

    return 0;
}
时间: 2024-10-27 11:33:42

c语言指针及结构体复习的相关文章

[转]C语言指针 之 结构体指针

在C语言中几乎可以创建指向任何类型的指针,包括用户自定义的类型.创建结构体指针是极常见的.下面是一个例子: 1 typedef struct 2 { 3 char name[21]; 4 char city[21]; 5 char state[3]; 6 } Rec; 7 typedef Rec *RecPointer; 8 9 RecPointer r; 10 r=(RecPointer)malloc(sizeof(Rec)); r是一个指向结构体的指针.请注意,因为r是一个指针,所以像其他指

数据结构复习之C语言指针与结构体

数据结构指针复习: #include <stdio.h> void main() { int a[5] = {8, 2, 3, 4, 5}; // a[3] == *(3+a) printf("%d\n", *(3+a)); // a[3] 4 printf("*a其实就是a[0]: %d\n", *a); // 8 // 地址是连续的 printf("%p\n", a+1); printf("%p\n", a+2

黑马程序员 C语言-枚举,结构体,指针

一.枚举 ※枚举变量的定义 前面只是定义了枚举类型,接下来就可以利用定义好的枚举类型定义变量. 跟结构体一样,有3种方式定义枚举变量 1.先定义枚举类型,再定义枚举变量 enum Season {spring, summer, autumn, winter}; enum Season s; 2.定义枚举类型的同时定义枚举变量 enum Season {spring, summer, autumn, winter} s; 3.省略枚举名称,直接定义枚举变量 enum {spring, summer

浅谈c语言typedef 与结构体指针(个人小经验)

 #include<stdio.h> #include<string.h> typedef struct emp{ char sex[8]; char name[15]; int age; }*emp;//这里我们用typedef把emp这个结构体变成了*emp这种指向结构体成员的结构体指针 /*typedef struct emp{ char sex[8]; char name[15]; int age; }pi,*emp;//为了程序的可读性最好不要这样声明*/ int m

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

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

指针和结构体知识学习

这一周主要学习了C语言中的最灵活的技巧 --指针.指针也是一个变量,它有自己的地址也有指向的地址,一般来说我们更关注的是指针指向的地址.指针的指向可以是整数.浮点数.字符.数组,同样的也可以是一个函数. 指针的基本操作有赋值.求值.取指针地址.将一个整数指针加给指针,增加指针的值.减小指针的值和求差值.如下程序所示: 1 /*ptr_ops.c - 指针操作*/ 2 #include <stdio.h> 3 int main() 4 { 5 int urn[5] = {100, 200, 30

黑马程序员— C语言基础之结构体、枚举、预处理、typedef的使用

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 本章我们主要来学习之前所学的复杂数据类型中的同样也很重要的结构体和枚举的知识,以及C语言中的预处理,typedef的使用,简单介绍一下static和extern等一些比较杂的知识.在开始本章的新知识学习之前首先我们来学习一下根据变量的作用域的不同C语言一般把变量分为两种,局部变量和全局变量.下面我们来分别比较和体会一下这两种不同的变量类型: 根据变量的作用域,可以分为: 1. 局部变量: a.

一维数组,二维数组,三维数组,数组与指针,结构体数组,通过改变指针类型改变访问数组的方式

 打印数组中的每个元素,打印每个元素的地址: #include <stdio.h> #include <stdlib.h> void main(void) { int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; for (int *p = a; p < a + 10;p++)  //指针类型决定4个字节 { printf("\n%p,%d", p, *p); } getchar(); } 指针数组 #inclu

linux 中 C 语言的使用 -- 结构体多态

在 Linux 内核代码,特别是驱动代码中经常见到的用法是使用一个标准结构,后面的代码基于这个结构来实现,类似面向对象的多态特性. 在 C 语言里面借助结构体和函数指针实现的这个功能,这里我们写了个例子,提取了关键代码: #include <stdio.h> struct s_new{ char name[10]; char* (* my_method)(char *name); }; char* powerful(char *name){ printf("%s is powerfu