5 C/C++
火山哥
这个作者很懒,什么都没留下…
展开
-
void及void指针详解
1.概述许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧。2.void的含义void的字面意思是“无类型”,void *则为原创 2011-07-06 10:57:28 · 1638 阅读 · 3 评论 -
C语言输出百分号(%)的方法,比较迷惑
很简单,只要在格式控制符里输入2个 %% 就可以了,例如: #include int main() { int a=90; printf("%d%%\n",a); return 0; } 这样就会在屏幕上得到 90%,但是为什么呢?原创 2011-12-07 12:00:53 · 7124 阅读 · 1 评论 -
C++创建对象的两种方法
在C++里,有两种方法创建对象: 方法一 : ClassName object(param); 这样就声明了一个ClassName类型的object对象,C++会为它分配足够的存放对象所有成员的存储空间。 注意:为节省存储空间,C++创建对象时仅分配用于保存数据成员的空间转载 2011-08-11 23:20:14 · 1446 阅读 · 0 评论 -
(8)让你不再害怕指针--指针类型转换
当我们初始化一个指针或给一个指针赋值时,赋值号的左边是一个指针,赋值号的右边是一个指针表达式。在我们前面所举的例子中,绝大多数情况下,指针的类型和指针表达式的类型是一样的,指针所指向的类型和指针表达式所指向的类型是一样的。 例十五: float f = 12.3;原创 2011-07-30 11:01:33 · 1086 阅读 · 0 评论 -
(7)让你不再害怕指针--指针和函数的关系
可以把一个指针声明成为一个指向函数的指针. int fun1(char *,int); int (*pfun1)(char *,int); pfun1 = fun1; int a = (*pfun1)("abcdefg",7); //通过函数指针调用函数。可以把指针作为函原创 2011-07-30 10:48:48 · 964 阅读 · 0 评论 -
(3)让你不再害怕指针--运算符&和*
这里&是取地址运算符,*是间接运算符。 &a 的运算结果是一个指针,指针的类型是a 的类型加个*,指针所指向的类型是a 的类型,指针所指向的地址嘛,那就是a 的地址。 *p 的运算结果就五花八门了。总之*p 的结果是p 所指向的东西,这个东西有这些特点:它的类原创 2011-07-30 09:30:00 · 1695 阅读 · 1 评论 -
(1)让你不再害怕指针--细说指针
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型、指针所指向的类型、指针的值或者叫指针所指向的内存区、指针本身所占据的内存区。让我们分别说明。先声明几个指针放着做例子:例一:(1)int*ptr;(2)char原创 2011-07-28 17:02:28 · 1732 阅读 · 1 评论 -
(6)让你不再害怕指针--指针和结构类型的关系
可以声明一个指向结构类型对象的指针。 例十二: struct MyStruct { int a; int b; int c; }; struct MyStruct ss = {20,30,40};//声明了结构对象ss,并把ss 的成员初始化为原创 2011-07-30 10:40:34 · 1047 阅读 · 0 评论 -
(5)让你不再害怕指针--数组和指针的关系
数组的数组名其实可以看作一个指针。看下例: 例九: int array[10] = {0,1,2,3,4,5,6,7,8,9},value; value = array[0]; //也可写成:value = *array; value = array[3]; //也可原创 2011-07-30 10:29:44 · 1116 阅读 · 0 评论 -
(4)让你不再害怕指针--指针表达式
一个表达式的结果如果是一个指针,那么这个表达式就叫指针表式。 下面是一些指针表达式的例子: 例七: d原创 2011-07-30 10:15:32 · 1241 阅读 · 0 评论 -
(2)让你不再害怕指针--指针的算术运算
指针可以加上或减去一个整数。指针的这种运算的意义和通常的数值的加减运算的意义是不一样的,以单元为单位。例如:例二:char a[20];int *ptr=(int *)a; //强制类型转换并不会改变a 的类型ptr++;在上例中,指针ptr 的类型是int*,它指向的类型是in原创 2011-07-28 17:39:24 · 3145 阅读 · 1 评论 -
(0)让你不再害怕指针--复杂类型说明
要了解指针,多多少少会出现一些比较复杂的类型,所以我先介绍一下如何完全理解一个复杂类型,要理解复杂类型其实很简单,一个类型里会出现很多运算符,他们也像普通的表达式一样,有优先级,其优先级和运算优先级一样,所以我总结了一下其原则:从变量名处起,根据运算符优先级结合,一步一步分析.下原创 2011-07-28 16:46:31 · 1310 阅读 · 3 评论 -
(9)让你不再害怕指针--指针的安全问题
看下面的例子: 例十八: char s = 'a'; int *ptr; ptr = (int *)&s; *ptr = 1298; 指针ptr 是一个int *类型的指针,它指向的类型是int。它指向的地址就是s 的首地址。在32 位程序中,s 占一个字原创 2011-07-30 11:20:37 · 1393 阅读 · 0 评论 -
C语言内存分配:malloc、calloc、realloc
大家都知道程序在内存中的布局分为:栈区、堆、静态变量区、常量区等几个部分。其中堆上的空间分配是由程序员自己来管理的,包括空间的申请和释放。 我们这里就说一下C标准库中提供的几个在堆上操作空间的函数: 1、void* malloc(unsigned size); 2、void* calloc(size_t nelem, size_t elsize); 3、void* re转载 2012-06-08 15:04:27 · 2719 阅读 · 2 评论