C/C++
shmilymdt
这个作者很懒,什么都没留下…
展开
-
C语声明的优先级规则
要理解一个声明,必须懂得其中的优先级规则优先级规则:A 从声明的最左边开始向右寻找,直到找到第一个标识符,然后按照下面的优先级顺序依次读取B 优先级顺序从高到低依次是: B.1 声明中被括号括起来的那部分(标识符包含在括号中)当成一个整体,先处理括号内的 B.2 后缀操作符:转载 2015-08-11 21:06:10 · 412 阅读 · 1 评论 -
关于定义一个指针与指针变量
分类: C/C++structosstruct stat st;struct stat *st; 【就事论事的解释】 struct stat *st;是定义了一个stat结构体的指针,这句话的重点在于是“指针”,其本质上,(在32位的体系结构中)也就是一个32位的数而已。对于名称和实体来说:名称:一个名字叫做s转载 2015-08-05 16:08:46 · 583 阅读 · 0 评论 -
C++中cin、cin.get()、cin.getline()、getline()、gets()等
学C++的时候,这几个输入函数弄的有点迷糊;这里做个小结,为了自己复习,也希望对后来者能有所帮助,如果有差错的地方还请各位多多指教(本文所有程序均通过VC 6.0运行)1、cin 2、cin.get() 3、cin.getline() 4、getline() 5、gets() 6、getchar()附:cin.ignore();cin.get()//跳过一个字符转载 2015-08-15 21:17:58 · 242 阅读 · 0 评论 -
cin的用法及清空输入缓冲区问题
问题描述:输入数据时希望有个合法性检验的问题,如果输入的数据不合法则程序提示重新输入。最初代码如下:#include #include using std::cin ;using std::cout ;using std::endl;using std::vector ;int main(){int num;vector ivec;转载 2015-08-17 09:56:14 · 614 阅读 · 0 评论 -
C++输入cin详解
输入原理:程序的输入都建有一个缓冲区,即输入缓冲区。一次输入过程是这样的,当一次键盘输入结束时会将输入的数据存入输入缓冲区,而cin函数直接从输入缓冲区中取数据。正因为cin函数是直接从缓冲区取数据的,所以有时候当缓冲区中有残留数据时,cin函数会直接取得这些残留数据而不会请求键盘输入#1:#include using namespace std;int main(){转载 2015-08-16 19:32:28 · 393 阅读 · 0 评论 -
typedef用法小结
一. 起别名的两种用法 1 . typedef ( int * ) pInt; 2 . typedef pInt ( int * )比如 pInt a,b;第一种表示: int*a;int*b;第二种表示: int*a,b;所以第一种更像一个类型,第二种更像宏。 二. 旧式代码中声明对象转载 2015-08-14 08:57:11 · 346 阅读 · 0 评论 -
指针 复杂的声明
int *( *(*fp1)(int) )[10]; 阅读步骤: 1. 从变量名开始 ---------------------------- fp1 2. 往右看,是“)”,因此往左看,是“*” ------- 一个指针 3. 跳出括号,碰到了(int) ------------ 一个带一个int参数的函数转载 2015-08-14 08:53:41 · 278 阅读 · 0 评论 -
右左法则----复杂指针解析
首先看看如下一个声明: int* ( *( *fun )( int* ) )[10]; 这是一个会让初学者感到头晕目眩、感到恐惧的函数指针声明。在熟练掌握C/C++的声明语法之前,不学习一定的规则,想理解好这类复杂声明是比较困难的。 C/C++所有复杂的声明结构,都是由各种声明嵌套构成的。如何解读复杂指针声明?右左法则是一个很著名、很有效的方法。不过,右左法则其实并不是C/转载 2015-08-14 08:50:29 · 168 阅读 · 0 评论 -
详解C/C++函数指针声明
要理解一个C程序,仅仅理解组成该程序的符号是不够的。程序员还必须理解这些符号是如何组合成声明、表达式、语句和程序的。 我们先来看看下面的一个语句:1( *( void(*)())0)(); 这是当计算机启动时,硬件将调用首地址为0位置的子例程。像这样的表达式恐怕会令每个C/C转载 2015-08-13 16:39:36 · 548 阅读 · 1 评论 -
C专家编程—分析signal函数的原型声明{void (*signal(int sig,void (*func)(int)))(int)}(2)
在ANSI标准中,signal()的声明如下: void (*signal(int sig,void (*func)(int)))(int)signal是一个函数,它返回一个函数指针,后者所指向的函数(signal的返回值)接受一个int参数并返回void。signal函数有两个参数,一个是sig(为int类型),另一个是func(为void(*)(int)类型)。转载 2015-08-13 15:19:21 · 326 阅读 · 0 评论 -
void (*f(int, void (*)(int)))(int) 函数解析
函数指针 今天与几个同学看到了一个函数指针定义: void (*f(int, void (*)(int)))(int) 以前在C trap pit fails里面见过,但是文章里面介绍的很详细,但是往往使初学者抓不到重点, 结果弄的一头污水。这里就简单介绍一下这中函数指针的定义方法。 什么是函数指针? 这个问题从定义的角度来看很好理解,指向函数的指针就是函数转载 2015-08-13 16:01:57 · 436 阅读 · 0 评论 -
void指针(void *的用法)
指针有两个属性:指向变量/对象的地址和长度但是指针只存储地址,长度则取决于指针的类型 编译器根据指针的类型从指针指向的地址向后寻址 指针类型不同则寻址范围也不同,比如: int*从指定地址向后寻找4字节作为变量的存储单元 double*从指定地址向后寻找8字节作为变量的存储单元 1.void指针是一种特别的指针 void *vp //说它特别是因转载 2016-04-28 16:21:53 · 967 阅读 · 0 评论