《深入理解C指针》学习笔记--- 指针之外
Posted michellel.top
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《深入理解C指针》学习笔记--- 指针之外相关的知识,希望对你有一定的参考价值。
C语言从诞生之初就非常善于和硬件打交道,经过这么多年的发展之后,其灵活性和超强的特征是受到几乎所有程序员的肯定。C语言的这种灵活性很大一部分程度来源与C指针,指针为C语言动态操控内存提供了支持,同时也便于访问硬件。由于编程的本质就是操控数据,而数据大多都在内存中,理解C管理内存的工作原理,就显得尤为重要了。知道malloc()函数能够从堆上申请内存,理解内存分配的本质则是另外的事。
请看代码例子:
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 5 int main(int argc, char **argv) 6 { 7 typedef struct student{ 8 char name[10]; 9 char class[6]; 10 char sex[2]; 11 int age; 12 //char zhu 13 } Student; 14 15 Student stu; 16 strcpy(stu.name, "zhangsan"); 17 strcpy(stu.class, "A1411"); 18 strcpy(stu.sex, "na"); 19 //stu.zhu = ‘n‘; 20 stu.age = 19; 21 22 printf("The stu information: \n"); 23 printf("Name:\t%s;\n", stu.name); 24 printf("Class:\t%s;\n", stu.class); 25 printf("Sex:\t%s;\n", stu.sex); 26 printf("Age:\t%d;\n", stu.age); 27 //printf("Zhu:\t%c;\n", stu.zhu); 28 29 printf("The struct stu‘size is %d\n", sizeof(Student)); 30 31 return 0; 32 }
保留12、19、27行的代码的执行结果:
The stu information:
Name: zhangsan;
Class: A1411;
Sex: na;
Age: 19;
Zhu: n;
The struct stu‘size is 28
其中12行代码和11行代码交换后执行结果:
The stu information:
Name: zhangsan;
Class: A1411;
Sex: na;
Age: 19;
Zhu: n;
The struct stu‘size is 24
注释12、19、27行的代码的执行结果
The stu information:
Name: zhangsan;
Class: A1411;
Sex: na;
Age: 19;
The struct stu‘size is 24
唯一的区别就是在结构体中增加了一个char型字符,但是结构体的大小增加了四个。
这个例子充分说明想学好C语言,必须搞定C语言中计算机的内存分配的原理和机制,否则C语言总是一知半解的。
以上是关于《深入理解C指针》学习笔记--- 指针之外的主要内容,如果未能解决你的问题,请参考以下文章