- 浏览: 263823 次
- 性别:
- 来自: 济南
文章分类
- 全部博客 (303)
- c (31)
- c++ (16)
- java (18)
- c# (1)
- python (3)
- java web (6)
- oracle (7)
- sqlserver (2)
- mysql (2)
- android (24)
- android系统 (15)
- android多媒体部分 (15)
- android游戏 (12)
- linux (26)
- javaScript (1)
- ajax (1)
- node JS (2)
- html (5)
- apache (3)
- jboss (1)
- weblogic (0)
- 通信协议 (10)
- 云计算 (1)
- 分布式 (5)
- ejb (1)
- webservice (5)
- 设计模式 (16)
- JNI (6)
- swing (13)
- 版本控制 (1)
- UML (1)
- xml (4)
- spring (5)
- hibernate (5)
- struts1 (3)
- struts2 (4)
- ibatis (0)
- tomcat (2)
- 心得体会 (1)
- css (1)
- 嵌入式 (41)
- arm体系结构 (10)
指针
可以使用指针记号操作存储在数组中的数据
可以在函数中访问函数外部的大块数据
动态为新变量分配空间
1 指针的声明: long * pnumber;
2 地址运算符: &
例如:long number=1234L;
long * pnumber;
pnumber=&number;
3 间接运算符: *
4 指针的初始化 :
可以用变量地址初始化指针,代码如下:
int number=10;
int * pnumber=&number;
还可以int * pnumber=0;
5 把指针初始化为char类型
可以用字符串字面量初始化:char * str1="this is a test!"; (由于字面量是const类型,所以该指针只是指向该字符串地址,不能修改其字符串内容;若想修改其内容,可以用以下形式:const char * str1="this is a test!";)
指针数组 '
格式如下:
const char * strs[]={"first","second","third","forth","fifth"};
使用指针对字符串进行排序
让输出结果变整齐
6 常量指针和指向常量的指针
const char * strs[]={"first","second","third","forth","fifth"};
以上指针可以通过以下语名进行修改: strs[1]=strs[2];(让两个指针指向同一地址,实际字符串的地址不变)
进行如下修改后指针数组就不能修改了:
const char * const strs[]={"1","2","3","4"};
对指针及其指向的内容使用const有三种不同情况:
(1)指向常量的指针:const char * parstr="this is a test string!";(指针指向的内容不能修改)
(2)常量指针: int num=100; int * const pnum=# (存储在指针中的地址不能修改)
(3)指向常量的常量指针 int num=100; const int * const pnum=#(两者都不能改变)
7 指针和数组
指针的算术运算
指针递增一: int * pnmu[]; pnum++; (称动指针到指针指向数组的下一个元素)
计算两个指针之间的差
使用指针名的数组表示法
把数组用作指外针: int nums[2]={1,2};可以用指针表示法 如 nums[2]等同于(*data+3)
对多维数组使用指针: int bean[2][3]; int * pbean=&bean[0][0]
c样式字符串的操作
在<cctype>中声明的函数,实现分析和转换单个字符
头文件在<cstring>
连接字符串: strcat() 把第二个字串追加到第一个字串中
strncat()有三个叁数,前两个同上,第三个用于指定第二个字符串的字符个数
复制:strcpy()
比较:strcmp()
搜索:strchar()
8 动态分配内存
自由存储区:程序中没有用到的内存空间 new对应的delete 用来释放未用到的空间
数组的动态内存分配: pstring=new char[20];(分配自由存储区的内存)
删险数组时使用 delete [] pstring; 这里可以不用指定维数
动态分配内存的危险
内存泄露 new后一定要使用delete释放内存
指针和变量的作用域
自由存储区的碎片
转换指针
reinterpret_cast<指针类型>(表达式) 强制转换任何类型指针
例如:float value=2.5f;
float * pvalue=&value;
long * pnumber= reinterpret_cast<long>(pvalue); (类型为long,值本身没有变)
发表评论
-
c++学习笔记十六
2013-05-14 21:50 826c with classes 尽量以const e ... -
c++学习笔记十七
2013-05-18 23:44 882构造、析构、赋值运算 c++会为一个空类声明一个copy构造函 ... -
c++学习笔记一
2012-09-03 15:25 610基本概念 第一个程序 h ... -
c++学习笔记二
2012-09-03 15:26 366处理基本数据类型 1 混合表达式 (向上转型) 2 赋 ... -
c++学习笔记三
2012-09-03 15:26 548选择和决策 比较数据值 1 关系运算符:< &g ... -
c++学习笔记五
2012-09-03 15:27 605while do-while for循环 循环和变 ... -
c++学习笔记七
2012-09-03 15:28 564使用函数编程 程序的分解 1 函数 定义函 ... -
c++学习笔记八
2012-09-03 15:29 602函数 1 函数的重载: 函数名相同,参数个数不同 ... -
c++学习笔记九
2012-09-20 23:14 704程序文件和预处理指令 1 程序文件 头文件:类型定 ... -
c++学习笔记十
2012-09-20 23:18 599创建自已的数据类型 1 对像的概念 2 c++中的结构 ... -
c++学习笔记十一
2012-09-20 23:20 250类 1 封装 继承 多 ... -
c++学习笔记十二
2012-09-20 23:20 695类的操作 1 类对象使用指针的三种情况: ... -
c++学习笔记十三
2012-09-20 23:31 675运算符重载 1 为自已的类实现运算符 运 ... -
c++学习笔记十四
2012-09-20 23:32 614继承 1 类和面向对象编程 2 类的继承 继承 ... -
c++学习笔记十五
2012-09-20 23:36 631虚函数和多态性 使用基类指针,示例代码如下(从Box派 ...
相关推荐
### C++ 学习笔记精华版 #### 一、C++ 语言概述 **1、历史背景** - **C++ 的江湖地位** - Java、C、C++、Python、C# 是当前主流的编程语言之一,而 C++ 在这些语言中以其高效性和灵活性著称。 - **C++ 之父 ...
C++学习笔记C++学习笔记C++学习笔记C++学习笔记C++学习笔记
C++学习笔记
这份"C++学习笔记"涵盖了C++的基础到高级概念,旨在帮助初学者和有一定经验的程序员深入理解并掌握C++。 在C++的学习过程中,以下几个关键知识点是不可或缺的: 1. **基础语法**:C++起源于C语言,因此它保留了...
最近一年的C++学习笔记,分享出来,文件已加密压缩,下载前请提前联系我!
C++是一种静态类型、编译式、通用的编程语言,它支持过程化编程、面向对象编程和泛型编程。C++广泛应用于软件开发领域,包括操作...以上内容覆盖了C++语言中一些基础知识点,对于学习和理解C++编程具有重要的指导意义。
【C++ 学习笔记】深入理解编程与C++基础 C++是一种强大的、面向对象的编程语言,广泛应用于系统软件、游戏开发、嵌入式系统以及许多高性能应用。学习C++不仅仅是掌握语法,更重要的是理解编程的核心概念,以便更好...
【C++学习笔记】这份详尽的资源是为那些希望深入了解C++编程语言的人们精心准备的。C++是一种强大的、通用的编程语言,它的设计理念是面向对象,同时支持过程化编程,使得它在系统软件、应用软件、游戏开发、设备...
C++核心学习笔记pdf
C++ 学习笔记C++ 学习笔记C++ 学习笔记C++ 学习笔记002
C++ 学习笔记C++ 学习笔记C++ 学习笔记C++ 学习笔记C++ 学习笔记003
C++ 学习笔记C++ 学习笔记C++ 学习笔记C++ 学习笔记C++ 学习笔记004
C++ 学习笔记C++ 学习笔记C++ 学习笔记C++ 学习笔记001
【C++学习笔记概述】 C++是一门强大的编程语言,其在C语言的基础上进行了扩展,引入了许多现代化的特性。这份笔记主要涵盖了C++的基础知识,包括C++11和C++17的新特性,旨在帮助初学者理解C++的核心概念。 ### C++...
C++学习笔记 本文档提供了C++语言的基础知识,包括输入输出、变量、数据类型、运算符、内存管理、指针、流程控制语句等。 输入输出 C++语言提供了多种输入输出方式,包括使用cin和cout对象。cin对象用于从标准...
《新手C++学习笔记》是一份专为编程初学者打造的资源,旨在帮助那些刚刚踏入C++编程领域的“菜鸟”快速成长。这份笔记包含了前辈们的实践经验总结,具有很高的学习价值。文档以.doc格式存储,方便读者使用常见的文字...
今天,让我们一起深入探究《黑马C++学习笔记》,这本涵盖了C++编程基础与核心概念的全面教材。 首先,C++的基础知识是每个学习者必须掌握的部分,这包括变量的声明与赋值、输出语句等基本操作。在C++中,变量的声明...
这份"C++学习笔记"涵盖了C++的基础概念、语法结构、面向对象编程以及可能的高级主题,旨在帮助初学者或者有经验的程序员巩固C++知识。 首先,C++是从C语言发展而来,它保留了C语言的效率,同时引入了类和对象的概念...
C++是一种强大的面向对象编程语言,它源自C语言并扩展了其...学习这些概念是成为C++程序员的第一步。在实际编程中,还需要理解类、对象、继承、多态等面向对象编程的概念,以及函数、模板、文件操作等更高级的主题。