C++语法-指针 (1)
《C++程序设计》 谭浩强 清华大学出版社 2016-08-03
1、P167
一般的C++编译系统为每个指针变量分配4个字节的存储单元,用来存放变量的地址。
2、P169 .cpp文件头
通常写法:
#include <iostream>
using namespace std;
说明:命名空间是C++的一种机制,C++的所有标识符都被定义在std命名空间中。使用std命名空间后,输入输出可以直接写成cout<< 与 cin>> 的形式;否则需写std::cout<< 与 std::cin>>
另外:#include<iostream.h> 是兼容早期C++版本的形式,相当于调用C库函数。后缀为.h的头文件,C++标准已明确提出不支持,C++标准为了与C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h。
3、P171 指针的值不可预见可能会破坏系统的正常工作状况。
例如:
void swap(int *p1, int *p2)
{
int *temp;
*temp = *p1; //此语句有问题,由于未对temp赋值,因此temp并无确定的值,它的值是不可预见的,也就是说,temp所指向单元是不可预见的。这样的情况下对 *temp赋值是危险的,可能会破坏系统的正常工作状况。
*p1 = *p2;
*p2 = *temp;
}
4、值传递是单向的
5、P176 数组的引用方法及执行效率
引用一个数组元素,可以有两种表示方法:
(1)下标法,如a[i]形式;
(2)指针法,如*(a+i)或*(p+i),其中a是数组名,p是指向数组元素的指针变量。
使用指针法能使目标程序质量高(占内存少,运行速度快),因为C++编译系统是将a[i]转换为*(a+i)处理的,对每个a[i]都分别计算地址a+i*d,然后再访问该元素。
C++语法-指针 (1)的更多相关文章
- go基础语法-指针
1.基础定义 golang的指针没有cpp等语言的指针复杂,具体表现在其不可用于运算.只有值传递 语法:var variableName *int = memoryAddr var a = 2 var ...
- C语言基本语法——指针
1.什么是指针 2.指针用于参数 3.指针用于返回值 4.指针加减操作 5.指针与数组区别 1.什么是指针 • 内存被分为字节,每个字节有唯一的地址,指针指的就是内存地址. • 保存指针的变量,就叫指 ...
- [C++] Realloc Memory
函数说明 void* realloc (void* ptr, size_t size); 语法 指针名=(数据类型*)realloc(要改变内存大小的指针名,新的大小). 新的大小可大可小(但是要 ...
- 全面总结sizeof的用法(定义、语法、指针变量、数组、结构体、类、联合体、位域位段)
一.前言 编译环境是vs2010(32位). <span style="font-size:18px;">#include<iostream> #inclu ...
- 终于懂了:Delphi的函数名不是地址,取地址必须遵守Object Pascal的语法(Delphi和C的类比:指针、字符串、函数指针、内存分配等)good
这点是与C语言不一样的地方,以前我一直都没有明白这一点,所以总是不明白:函数地址再取地址算怎么回事? ------------------------------------------------- ...
- C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com
原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | I ...
- [C]语法, 知识点总结(一. 进制, 格式化输入/出, 指针)
进制 概念: n进制, 最大的数是n-1, 逢n进1位. 数据类型 概念: 其实就是占的位数不同, 转换到计算机当中都是0和1. 常用: 类型名 占字节数 描述 char 1字节=8个二进制位 字符类 ...
- 理解C语言中指针的声明以及复杂声明的语法
昨天刚把<C程序设计语言>中"指针与数组"章节读完,最终把心中的疑惑彻底解开了.如今记录下我对指针声明的理解.顺便说下怎样在C语言中创建复杂声明以及读懂复杂声明. 本文 ...
- C语言基础语法之指向函数的指针
指针是C语言的精髓,对于初学者来讲,指针是C语言语法学习中比较难的知识点,而这里面指向函数的指针更是不太容易理解. 下面给大家讲下怎样学习理解C语言中指向函数的指针及编程方法和使用例子. 注意:这是一 ...
随机推荐
- Logstash学习-配置语法
区段(section) Logstash 用{}来定义区域.区域内可以包括插件区域定义,你可以在一个区域定义多个插件,插件区域内则可以定义键值对设置. 数据类型 Logstash支持少量的数据值类型: ...
- js高级程序设计书中,有一句话在全局作用域中定义的函数实际上只 能被某个对象调用???
js没有块级作用域(题外话:函数可以作为一个块级),所以我们经常使用闭包来模拟块级作用域,以避免变量或者函数因为名称相同而产生的冲突. 重点来了: 所以,如果我们把哪个变量或者函数放在全局作用域中,那 ...
- jQuery easyui 扩展form插件的三个方法
$.extend($.fn.form.methods, { serialize: function(jq){ var arrayValue = $(jq[0]).serializeArray(); v ...
- Android first--SharedPreferences
public class MainActivity extends Activity { private EditText et_name; private EditText et_pass; ...
- BASH比较大小
- python之路2(基础详解)
python一切都是对象: 列子:
- color.xml
写控件的时候经常会遇到颜色选择问题,下面贴出常用颜色表示,方便选择. <?xml version="1.0" encoding="utf-8"?>& ...
- Web Service数据源
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- Ember.js 的视图层
本指导会详尽阐述 Ember.js 视图层的细节.为想成为熟练 Ember 开发者准备,且包 含了对于入门 Ember 不必要的细节. Ember.js 有一套复杂的用于创建.管理并渲染连接到浏览器 ...
- Mysql 5.7.12 配置
打算用express+mysql写一个博客.本来在公司电脑已经配置好了的,但是为了方便在家里也能修改,所以在自己的电脑里也安装好环境. 公司电脑是win7系统32位的,安装的是5.5的mysql,用的 ...