C重要知识点&疑惑点
来源:互联网 发布:北京百知尚行是培训吗 编辑:程序博客网 时间:2024/04/28 20:40
C重要知识点&疑惑点
C重要知识点
数据类型的本质和变量的本质分别是什么
结构体一定义就是一级指针
浅拷贝和深拷贝的区别
指针做函数参数,输入和做输出的意思
C疑惑点
指针数组和数组指针的区别
结构体访问时->和.的区别
Include的时候 “”和<>的区别
int *p = NULL; p+1和p++的区别
C重要知识点
1. 数据类型的本质和变量的本质分别是什么?
数据类型的本质就是固定内存大小块的别名
变量的本质是一块连续内存空间的别名
2. 结构体一定义就是一级指针
3. 浅拷贝和深拷贝的区别
4. 指针做函数参数,输入和做输出的意思
指针做输入
主调函数分配内存,被调函数使用
指针做输出
主调函数使用,被调函数分配内存
C疑惑点
1. 指针数组和数组指针的区别
参考网址:区别详解
Int *p1[5];
Int (*p2)[n];
总结:
不带括号的为指针数组
不带括号的是数组指针
指针数组
数组里的每个元素都是int *类型的
数组指针
数组里每个元素都是int类型的,数组本身是个匿名数组.
p2是个指针,指向一个包含10 个int 类型数据的数组
详解
指针数组
定义 int *p1[n];
[]优先级高,先与p1结合成为一个数组,再由int*说明这是一个整型指针数组
p1先与“[]”结合,构成一个数组的定义,数组名为p1,int *修饰的是数组的内容,即数组的每个元素
指针数组是多个指针变量,以数组形式存在内存当中,占有多个指针的存储空间
数组指针
定义 int (*p2)[n];
()优先级高,首先说明p2是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p2的步长。也就是说执行p2+1时,p2要跨过n个整型数据的长度。
在这里“()”的优先级比“[]”高,“*”号和p2构成一个指针的定义,指针变量名为p2,int 修饰的是数组的内容,即数组的每个元素。数组在这里并没有名字,是个匿名数组。那现在我们清楚p2 是一个指针,它指向一个包含10 个int 类型数据的数组,即数组指针。
所以数组指针也称指向一维数组的指针,亦称行指针。
2. 结构体访问时->和.的区别
结构体变量的引用和赋值,有两种形式,
一种是用符号”.”
一种是用符号”->”
//结构体指针变量用-> MyStruct *p = (MyStruct*)malloc(sizeof(MyStruct)); p->data; //一般结构体变量用. MyStruct myStruct; myStruct.data;
3. Include的时候 “”和<>的区别
#include<>直接从编译器自带的函数库中寻找文件(编译器类库路径)
#include""是先从自定义的文件中找(程序目录相对路径中的头文件),如果找不到在从函数库中寻找文件
如果是自己写的头文件 建议使用#include“”
4. int *p = NULL; p+1和p++的区别
- C重要知识点&疑惑点
- C/C++重要知识点
- C语言知识点<重要>
- C语言重要知识点
- C/C++重要知识点总结
- C语言重要知识点回顾
- C/C++重要知识点汇总
- Objective-C的重要知识点
- C语言的几点疑惑
- 【C语言】重要注意点
- c陷阱和缺陷(重要知识点)
- c语言的几个重要知识点
- c语言的几个重要知识点
- C语言重要知识点总结(一)
- C语言重要常用知识点梳理
- 二级C考试的重要知识点
- IOCP知识点及疑惑
- IOCP知识点及疑惑
- poj 1458 Common Subsequence
- Spring Boot / Spring MVC 入门实践 (二) :MVC与Spring MVC简介
- java继承
- list_head用法(二) 接口函数list_for_each_entry
- Android 开发工程师面试指南
- C重要知识点&疑惑点
- Algorithms for Detecting Significantly Mutated Pathways in Cancer
- python核心编程作业--正则表达式和图形界面--电影搜索器(电影天堂)
- Android消息处理机制:Handler|Message
- linux top命令详解
- 229. Majority Element II
- python图像主色调(主颜色)提取,在hsv空间k均值迭代实现
- Hibernate 集合映射,适用于一对多的情况
- POJ 3080 Blue Jeans (很暴力)