数组和指针
1.int *pi = 0; pi不指向任何对象。
指针最好应初始化,如果须分开定义指针和其所指向的对象,则将指针初始化为0.
2.把int型变量赋给指针是非法的,尽管此int型变量的值可能为0.但允许把数值0或在编译中可获得0值的const量赋给指针。
3.如果把指向const的指针理解为“自以为指向const的指针“,这可能会对理解有所帮助。
4.复杂const 类型的声明 ??
5.如果cp指向的字符数组没有null结束符,则此循环将会失败。这时,循环 会从cp指向的位置开始读数,直到遇到内存中某处null结束符为止。
6.对大部分的应用而言,使用标准库类型string,除了增强安全性外,效率也提高了,因此应该尽量避免使用C风格字符串。
7.每一个程序在执行时都占用一块可用的内存空间,用于存放动态分配的对象,此内存空间称为程序的自由存储区(free store)或堆(heap)。
8.动态空间的释放:
delete [ ] pia;
空方括号对是必不可少的 ;它告诉编译器该指针指向的是自由存储区中的数组,而并非单个对象。
如果遗漏了空方括号对,这是一个编译器无法发现的错误,将导致程序在运行时出错。
9.在下面的声明中,圆括号是必不可少的:
int *ip[4] ; //array of pointers to int
int (*ip) [4]; //pointers to an array of 4 ints
分享到:
相关推荐
### 指针和数组学习笔记 #### 一、引言 在计算机编程语言中,指针和数组是非常重要的概念,它们...通过本篇学习笔记,希望读者能够更加深刻地理解指针和数组的本质以及它们之间的关系,从而在实际开发中更加得心应手。
本学习笔记主要涵盖了C++中的几个关键主题:线程、指针、调试以及编码实践。 首先,关于C++的线程:在多核处理器的时代,线程成为了实现并行处理和提高程序性能的重要手段。C++11引入了标准库中的`<thread>`,使得...
【C++学习笔记概述】 C++是一门强大的编程语言,其在C语言的基础上进行了扩展,引入了许多现代化的特性。这份笔记主要涵盖了C++的基础知识,包括C++11和C++17的新特性,旨在帮助初学者理解C++的核心概念。 ### C++...
本笔记将深入探讨C++指针的精髓,包括其基本概念、使用方法以及高级应用。 首先,我们要理解指针的基本原理。在C++中,指针是一个变量,它存储的是另一个变量的内存地址。当我们声明一个指针变量时,例如`int *p;`...
指针可以与数组和动态内存分配相结合。数组名实际上是一个指向其首元素的指针,所以我们可以用指针来遍历数组。同时,使用`new`运算符可以动态地在运行时分配内存,返回的地址可以存储在指针中,如`int *arr = new ...
《达内学生C++学习笔记》是一份专为初学者设计的C++教程,旨在提供清晰易懂、逐步深入的学习路径。这份笔记涵盖了C++语言的基础到进阶内容,是学习C++的理想辅助资料。 首先,C++是一种静态类型的、编译式的、通用...
【C语言和C++Builder学习笔记】 C语言和C++是两种广泛使用的编程语言,它们在软件开发领域占据着重要地位。C语言以其简洁、高效和底层操作能力著称,而C++则在C的基础上引入了面向对象编程,极大地扩展了其应用范围...
本文详细解释了C++中几个容易混淆的概念,包括引用与指针的区别、常量指针与指向常量的指针的不同、拷贝构造函数与赋值运算符的作用、new/delete与new[]/delete[]的使用场景、内联函数与宏定义的特点以及动态类型与...
C++学习笔记和常见面试知识点,C++11特性,包括多态、虚表、移动语义、友元函数、符号重载、完美转发、智能指针、const和static、数组指针和指针数组、struct内存对齐、enum和union关键字等等。帮助了解C++的特性,...
### C++基础编程知识点梳理 #### 一、C++简介及注释 - **C++** 是一种静态类型的、编译式的、通用的、大小...以上是C++基础编程中的核心知识点概述,通过这些内容的学习,初学者可以逐步掌握C++的基本语法和编程技巧。
这篇学习笔记将深入探讨STL的核心概念、主要组件以及其在实际编程中的应用。 首先,STL的核心概念是容器、迭代器、算法和函数对象。容器是STL提供的一系列数据结构,如vector(动态数组)、list(双向链表)、set...
开发C++后台服务程序时,通常会创建一个`SERVICE_TABLE_ENTRY`结构体数组,它包含了服务的名称和服务入口点函数的指针。`StartServiceCtrlDispatcher`函数需要这个数组来找到并启动服务。 在创建服务时,开发者还...
本篇JVM学习笔记主要关注对象声明、相关内存分配方法以及虚拟内存的物理和虚拟寻址概念。 首先,我们来看对象声明。在Java中,对象是在堆上创建的。例如,`CHeapObj` 类展示了如何在C++中模拟Java对象在堆上的分配...
这个“C & C++学习笔记集合”显然是一份综合性的资源,旨在帮助学习者深入理解和掌握这两种语言。 C 语言是基础,它的语法简洁明了,对内存管理有直接的控制,是理解计算机底层工作原理的良好起点。C 语言的核心...
这份"C/C++学习笔记"是作者个人深入学习和理解的结晶,包含了声明、指针、数据结构等基础且重要的主题,这些都是C/C++程序员必须掌握的基础知识。 首先,我们要讨论的是**声明**。在C/C++中,声明告诉编译器变量、...
以下是一些C++基础学习的关键知识点: 1. **基本数据类型**:C++中的基本数据类型包括整型(int、short、long、long long)、浮点型(float、double)、字符型(char)以及布尔型(bool)。理解每种类型的数据范围...
这份"C++学习笔记、心得"涵盖了从基础语法到面向对象编程的概念,是作者一个半月辛勤学习的结晶。在这里,我们将深入探讨其中可能包含的知识点,并提供一些理解和应用C++的关键指导。 1. **基础语法**:C++的基础...
常量指针和指向常量的指针是C++中的基本概念,区别在于一个指针是否可以修改它所指向的值或指针本身。常量指针(如int *const p)指的是指针本身的值不可变,但是它指向的值可以改变。指向常量的指针(如const int *...