if((fTestVal >= -EPSINON) && (fTestVal <= EPSINON)); //EPSINON 为定义好的精度。
void *p1; int *p2; p1 = p2;
void *p1; int *p2; p2 = p1;
提示“‘=‘ : cannot convert from ‘void *‘ to ‘int *‘”。
因为在c++中同样的做法如果为无参函数传参会导致出错提示“‘fun‘ : function does not take 1 parameters”。
千万小心又小心使用void 指针类型。
按照ANSI(American National Standards Institute)标准,不能对void 指针进行算法操作,
即下列操作都是不合法的:
void * pvoid; pvoid++; //ANSI:错误 pvoid += 1; //ANSI:错误
ANSI 标准之所以这样认定,是因为它坚持:进行算法操作的指针必须是确定知道其指
向数据类型大小的。也就是说必须知道内存目的地址的确切值。
return 用来终止一个函数并返回其后面跟着的值。
return (Val);//此括号可以省略。但一般不省略,尤其在返回一个表达式的值时。
return 可以返回些什么东西呢?看下面例子:
char * Func(void) { char str[30]; … return str; }
str 属于局部变量,位于栈内存中,在Func 结束的时候被释放,所以返回str 将导致错 误。return 语句不可返回指向“栈内存”的“指针”,因为该内存在函数体结束时
被自动销毁。
const intMax=100; intArray[Max];
这里请在Visual C++6.0 里分别创建.c 文件和.cpp 文件测试一下。你会发现在.c 文件 中,编译器会提示出错,而在.cpp 文件中则顺利运行。为什么呢?我们知道定义一个 数组必须指定其元素的个数。这也从侧面证实在C 语言中,const 修饰的Max 仍然是 变量,只不过是只读属性罢了;而在C++里,扩展了const 的含义
const 修饰的只读变量不能用来作为定义数组的维数,
也不能放在case 关键字后面。
【规则2-5】对于全局数据(全局变量、常量定义等)必须要加注释。
【规则2-12】对变量的范围给出注释。
typedef struct student { //code }Stu_st,*Stu_pst;
C),const Stu_pst stu3; const修饰的是指针本身,
D),Stu_pst const stu4; const修饰的是指针本身
Stu_pst 是“struct student
{ /*code*/} *”的别名, “struct student {/*code*/} *”是一个整体。对于编译器来说,只认为Stu_pst 是一个类型名,所以在解析的时候很自然的把“Stu_pst”这个数据类型名忽略掉。
#define BSC // #define BMC /* #define EMC */ D),BSC my single-line comment E),BMC my multi-line comment EMC D) E)均错误。
初学者总是分不出指针数组与数组指针的区别。其实很好理解:
指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身
决定。它是“储存指针的数组”的简称。
数组指针:首先它是一个指针,它指向一个数组。在32 位系统下永远是占4 个字节,
至于它指向的数组占多少字节,不知道。它是“指向数组的指针”的简称。
下面到底哪个是数组指针,哪个是指针数组呢:
A),int *p1[10];
B),int (*p2)[10];
每次上课问这个问题,总有弄不清楚的。这里需要明白一个符号之间的优先级问题。
“[]”的优先级比“*”要高。p1 先与“[]”结合,构成一个数组的定义,数组名为p1,int *
修饰的是数组的内容,即数组的每个元素。那现在我们清楚,这是一个数组,其包含10 个
指向int 类型数据的指针,即指针数组。至于p2 就更好理解了,在这里“()”的优先级比
“[]”高,“*”号和p2 构成一个指针的定义,指针变量名为p2,int 修饰的是数组的内容,
即数组的每个元素。数组在这里并没有名字,是个匿名数组。那现在我们清楚p2 是一个指
针,它指向一个包含10 个int 类型数据的数组,即数组指针。
1.c语言中,当一维数组作为函数参数的时候,编译器总是把它解析成一个指向其首元素首 地址的指针。目的是:为了节省时间和空间,提高程序运行的效率,因为我们并不需要 整个数组的内容,可能只对其中的一个或者几个感兴趣。
2.同样的,函数的返回值也不能是一个数组,而只能是指针。这里要明确的一个概念就是: 函数本身是没有类型的,只有函数的返回值才有类型。
原文地址:http://blog.csdn.net/qingzai_/article/details/44307189