(C和指针) #if 0/#if 1...#end if
一. “#if 0/ #if 1 ... #endif” 的作用
1) code中定义的是一些调试版本的代码,此时code完全被编译器忽略。如果想让code生效,只需把#if 0改成#if 1
2) #if 0还有一个重要的用途就是用来当成注释,如果你想要注释的程序很长,这个时候#if 0是最好的,保证不会犯错误
#if 1可以让其间的变量成为局部变量。
3) 这个结构表示你先前写好的code,现在用不上了,又不想删除,就用这个方法,比注释方便。
#include <iostream>
int main(void)
{
int a = 0;
#if 0
a = 1;
#endif
printf("%d\n",a);
return 0;
}
相关推荐
-
深入解析C++中的指针数组与指向指针的指针
指针数组定义:如果一个 数组,其元素均为指针型数据,该数组为指针数组,也就是说,指针数组中的每一个元素相当于一个指针变量,它的值都是地址. 形式:一维指针数组的定义形式为:int[类型名] *p[数组名] [4][数组长度];由于[ ]比*优先级高,因此p先与[4]结合,形成p[4]的数组的形式.然后与p前面的" * "结合," * "表示此数组是指针类型的,每个数组元素都相当于一个指针变量,都可以指向整形变量. 注意:不能写成int (*p)[4]的形式,这是指的
-
函数指针与指针函数的学习总结
函数指针是指向函数的指针,指针函数是指一个函数的返回值是一个指针,但下面的几道题还是感觉很迷惑.各位能否讲的详细点呢? (1) float(**def)[10] def是什么?(2) double*(*gh)[10] gh是什么?(3) double(*f[10])() f是什么?(4) int*((*b)[10]) b是什么?这样老感觉有点乱,有什么窍门可以记得并理解的清楚一点么? ======================解答: (1) def是一个指针, 指向的对象
-
C++中的函数指针与函数对象的总结
篇一.函数指针函数指针:是指向函数的指针变量,在C编译时,每一个函数都有一个入口地址,那么这个指向这个函数的函数指针便指向这个地址. 函数指针的用途是很大的,主要有两个作用:用作调用函数和做函数的参数. 函数指针的声明方法:数据类型标志符 (指针变量名) (形参列表):一般函数的声明为: int func ( int x );而一个函数指针的声明方法为:int (*func) (int x);前面的那个(*func)中括号是必要的,这会告诉编译器我们声明的是函数指针而不是声明一个具有返回型为指针
-
C语言的指针类型详细解析
指针存储了内存的地址,同时指针是有类型的,如int*,float*,那么,一个自然的猜想就是指针变量应该存储这两方面的信息:地址和指针类型,比如,就像下面的结构体: 复制代码 代码如下: struct pointer{ long address; int type;} 举个例子:打印sizeof(int*),值为4,可见4字节是存储内存地址用的,反过来就说明指针并没有存储类型信息的地方,那么指针的类型信息存放在哪儿呢?下面剖析一段简单的代码. 复制代码 代码如下: // ma.cpp
-
基于指针的数据类型与指针运算小结
1.指针的数据类型小结有关指针的数据类型 定义 含义 int i; 定义整形变量 int *p; 定义只想整型数据的指针变量p int a[n]; 定义整形数组a,它有n个元素 int *p[n]; 定义指针数组p,它由n个指向整形数据类型的指针元素组成 int (*p)[n]; 定义指向n个元素的一位数组的指针变量 int f(); f为带回整形函数值的函数 int *p(); p为带回一个指针的函数,该指针指向整形数据. int (*p)(); p为指向函数的指针,该函数返回一个整形数据 i
-
C++中一维数组与指针的关系详细总结
对于数组int a[10];a表示数组的第一个元素的地址,即&a[0]; 如果使指针p,指向数组的首元素,可以进行操作:int * p=a;或者int *p=&a[0]; 那么p++,是指向数组中的先一个元素,即a[1];此时*p则是a[1]中所放的值.此时,a[i]=p[i]=*(a+i)=*(p+i) 下面举一个例子:直接用a[i]来输出 复制代码 代码如下: #include<iostream>using namespace std;int main(){ int a[1
-
(C和指针) #if 0/#if 1...#end if
一. "#if 0/ #if 1 ... #endif" 的作用 1) code中定义的是一些调试版本的代码,此时code完全被编译器忽略.如果想让code生效,只需把#if 0改成#if 1 2) #if 0还有一个重要的用途就是用来当成注释,如果你想要注释的程序很长,这个时候#if 0是最好的,保证不会犯错误 #if 1可以让其间的变量成为局部变量. 3) 这个结构表示你先前写好的code,现在用不上了,又不想删除,就用这个方法,比注释方便. 二. 例子 复制代码 代
-
深入学习C语言中的函数指针和左右法则
通常的函数调用 一个通常的函数调用的例子: //自行包含头文件 void MyFun(int x); //此处的申明也可写成:void MyFun( int ); int main(int argc, char* argv[]) { MyFun(10); //这里是调用MyFun(10);函数 return 0; } void MyFun(int x) //这里定义一个MyFun函数 { printf("%d\n",x); } 这个MyFun函数是一个无返回值的函数,它并不完成
-
详解C++中的指针、数组指针与函数指针
C++中一个重要的特性就是指针,指针不仅具有获得地址的能力,还具有操作地址的能力.指针可以用于数组.或作为函数的参数,用来访问内存和对内存的操作,指针的使用使得C++很高效,但是指针也非常危险,使用不当会带来比较严重的问题. 1.指针 程序中所有的变量和常量都存在一个内存地址中,当然,函数也有对应的内存地址,内存地址的不同会导致程序执行时有所不同. 指针就是用来控制和存储内存地址的变量,它指向单个对象的地址,除了void之外,指针的数据类型与所指向地址的变量数据类型保持一致. 2.如何定义指针.
-
C++中的delete不会将操作数置0
考虑一下: delete p; // ... delete p; 如果在...部分没有涉及到p 的话,那么第二个"delete p;"将是一个严重的错误,因为C++的实现(译注:原文为a C++ implementation,当指VC++这样的实现了C++标准的具体工具)不能有效地防止这一点(除非通过非正式的预防手段).既然delete 0从定义上来说是无害的,那么一个简单的解决方案就是,不管在什么地方执行了"deletep;",随后都执行"p=0;&qu
-
C语言指针基础知识实例讲解
对程序进行编译的时候,系统会把变量分配在内存单位中,根据不同的变量类型,分配不同的字节大小.比如int整型变量分配4个字节,char字符型变量分配1个字节等等.被分配在内存的变量,可以通过地址去找到,内存区每一个字节都有一个编号,地址也可以形象的理解成我们生活中的住址,通过住址找到每一个人所在的地方.指针作为一个变量用来存放地址,可以通过指针来改动变量. 上图就是一个简单的定义一个一级指针变量和利用指针改变变量数值的过程.int*表示整型指针,*p表示解引用操作,就是利用指针找到a的地址然后再改
-
C++野指针和悬空指针的实现方法
目录 一.野指针 二.悬空指针 2.1 情况一 2.2 情况二 2.3 情况三 野指针和悬空指针是指针中常见的两个概念,本文结合实例讲解来讲解下. 一.野指针 野指针是指尚未初始化的指针,既不指向合法的内存空间,也没有使用 NULL/nullptr 初始化指针. 来看一个简单例子: #include <iostream> using namespace std; int main() { int *p; // 野指针 int *q = NULL; // 非野指针 p = new int(5);
-
C语言的空类型指针,空指针,野指针详解
目录 空类型指针-void* 空指针-NULL 野指针 造成野指针的原因 1.指针未初始化 2.指针越界访问 3.指针指向的空间已经释放 避免野指针 总结 空类型指针-void* void是空类型,void*是空类型指针,又叫万能指针,就是该指针能接收任意类型的指针,可以指向任何类型对象,所以不能对空类型指针进行解引用,必须强制类型转换成相应的指针类型,才能进行解引用操作. 空指针类型: 作为函数形参类型,可以接收任意类型的指针: 作为函数返回值类型,在函数外面,将其强制类型转换为相应的指针类型
-
C语言中的初阶指针详解
目录 1.指针是什么 2.指针和指针类型 3.野指针 3.1野指针成因 3.2如何规避野指针 4.指针的运算 4.1指针±整数 4.2指针-指针 4.3指针的关系运算 5.指针和数组 6.二级指针 7.指针数组 总结 1.指针是什么 初学者都有一个疑问,那就是指针是什么?简单的说,就是通过它能找到以它为地址的内存单元. 地址指向了一个确定的内存空间,所以地址形象的被称为指针. int main() { int a = 10; int* pa = &a; return 0; } //pa是
-
C语言中的指针新手初阶指南
目录 1.指针是什么 2.指针和指针类型 3.野指针 3.1野指针成因 3.2如何规避野指针 4.指针的运算 4.1指针±整数 4.2指针-指针 4.3指针的关系运算 5.指针和数组 6.二级指针 7.指针数组 总结 1.指针是什么 初学者都有一个疑问,那就是指针是什么?简单的说,就是通过它能找到以它为地址的内存单元. 地址指向了一个确定的内存空间,所以地址形象的被称为指针. int main() { int a = 10; int* pa = &a; return 0; } //pa是用来
-
C语言中的指针 初阶
目录 1.指针是什么 2.指针和指针类型 3.野指针 3.1野指针成因 3.2如何规避野指针 4.指针的运算 4.1指针±整数 4.2指针-指针 4.3指针的关系运算 5.指针和数组 6.二级指针 7.指针数组 1.指针是什么 初学者都有一个疑问,那就是指针是什么?简单的说,就是通过它能找到以它为地址的内存单元. 地址指向了一个确定的内存空间,所以地址形象的被称为指针. int main() { int a = 10; int* pa = &a; return 0; } //pa是用来存放地址(
随机推荐
- Angular2 PrimeNG分页模块学习
- Javascript中arguments和arguments.callee的区别浅析
- ASP.net与SQLite数据库通过js和ashx交互(连接和操作)
- php利用cookie实现自动登录的方法
- 封装的android监听手指左右滑动屏幕的事件类分享
- MySQL 处理插入过程中的主键唯一键重复值的解决方法
- 配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
- MySQL数据库分区功能的使用教程
- jquery中each循环的简单回滚操作
- JS实现网页顶部向下滑出的全国城市切换导航效果
- JavaScript中“过于”犀利地for/in循环使用示例
- backdoor病毒珍藏绝密源代码
- Java基于UDP协议实现简单的聊天室程序
- C#中使用资源的方法分析
- android实现记事本app
- Python实现的朴素贝叶斯分类器示例
- PHP+Ajax实现的检测用户名功能简单示例
- 易语言将下载地址解析转换成迅雷快车旋风的方法
- python爬虫 爬取超清壁纸代码实例
- 详解Android自定义权限使用总结