pointers相关内容

指针的大小数据和函数指针之间有什么不同?

我只是读指针上中的Ç常见问题的部分。 论述不能够使用无效* 指针持有函数指针,因为数据指针和指向函数可能会对某些平台和无效* 只能保证是大到足以容纳指针数据。 谁能给一个平台的例子,数据指针和指向函数实际上有不同的大小? 解决方案 >类型ppp.c #包括LT&;&stdio.h中GT; #包括LT&;&stdlib.h中GT;INT全球= 0;诠释主要(无效){ INT ..
发布时间:2016-08-17 20:48:00 C/C++

("")点运算符和箭头(" - >")运算符的使用使用C与Objective-C的

我试图环绕的一些使用C与Objective-C中的用法和语法的差异我的头。我特别想知道如何使用(为什么)不同的点运算符和使用C与Objective-C的箭头运营商。下面是一个简单的例子。 C code: //声明一个指针分数 结构分数*压裂;...//引用一个“实例”变量 INT N =(*压裂).numerator; //这两个前pressions INT N =压裂>分子; //是 ..
发布时间:2016-08-17 20:46:54 移动开发

常量指针VS指针上一个恒定值

什么是下面的声明之间的区别? char * const的一个; 为const char * A; 为了理解我写了这个小程序的区别是:的#include<&stdio.h中GT; #包括LT&;&stdlib.h中GT; INT主(INT ARGC,字符** argv的) { 所以char a ='X'; 焦炭B ='Y'; char * const的PC1 =安 ..
发布时间:2016-08-17 20:46:43 C/C++

什么是函数指针的地步?

我无法看到函数指针的效用。我想这可能是在某些情况下(他们的存在,毕竟)是有用的,但我不认为它是好还是不可避免的要使用的函数指针的情况。 你能给良好的使用功能指针(在C或C ++)?一些例子 解决方案 大多数示例归结为 回调的:你调用一个函数 F( )通过另一个函数的地址克()和 F()调用克()对于一些特定的任务。如果你通过 F()地址 H()来代替,那么 F() 将回调 H()来代替。 ..
发布时间:2016-08-17 20:44:55 C/C++开发

为什么要用双指针?或为什么使用指针的指针?

当应在双指针C中使用?任何人都可以用一个例子解释一下吗? 我所知道的是,双指针指向的指针。为什么我需要一个指针的指针? 解决方案 如果你想有字符的列表(字),你可以使用的char *字 如果您想要的单词列表(句子),您可以使用的char **一句 如果你想句子的列表(独白),你可以使用字符***独白 如果你想独白的列表(传记),你可以使用字符****传记 如果你想传记名单(生物库 ..
发布时间:2016-08-17 20:42:03 C/C++

是否所有的数据指针在一个平台上同样大小的所有数据类型?

是的char * ,为int * ,长* 甚至久长*相同大小(给定平台上)的? 解决方案 他们不能保证是相同的大小,但在平台上我有经验,他们通常是。 6.2.5.27: 要作废的指针应具有相同的重presentation和对齐要求作为 指针指向一个字符type.39)同样指向合格的或不合格的版本 兼容类型应具有相同的重presentation和对齐要求。所有指针结构类型应具有相 ..
发布时间:2016-08-17 20:40:11 C/C++

在指针声明中星号的位置

我最近决定,我只是终于学会C / C ++,并有一件事我真的不明白关于指针或更多precisely,它们的定义。 如何这些例子: 为int *测试; 为int *测试; 为int *测试; 为int *测试,测试2; 为int *测试,测试2; 为int *测试,测试2; 现在,我的理解,前三种情况都做同样的:测试不是int,而是指向包含一个 第二组的例子是有点更靠谱。在 ..
发布时间:2016-08-17 20:40:09 C/C++开发

你如何将一个函数在C参数?

我要创建执行由参数的一组数据传递的函数的函数。你如何将一个函数在C参数? 解决方案 声明 一个一个函数原型,它接受一个函数参数如下所示: 无效FUNC(无效(* F)(INT)); 这指出参数˚F将是一个指针,它有一个无效返回类型和函数只需要一个 INT 参数。下面的函数(打印)是可以传递给 FUNC 作为参数的函数的例子,因为它是正确的类型:无效打印(INT X){ 的pri ..
发布时间:2016-08-17 20:36:01 C/C++

是否有任何的平台,其中三分球不同类型有不同的大小?

C标准允许指针的不同类型,以具有不同的尺寸,例如的sizeof(字符*)!= sizeof的为(int *)是允许的。它,然而,要求,如果一个指针被转换为无效* ,然后回原来的类型,则必须相等其原始值。因此,它遵循逻辑上的的sizeof(无效*)> = sizeof的(T *)所有类型 T ,是否正确? 在目前使用的(X86,PPC,ARM和64位变种等),所有指针的大小等于不管所指向的本 ..
发布时间:2016-08-17 20:35:30 C/C++

什么是“数组名”的字符指针数组的情况下,是什么意思?

在我的code: 的char * str中[] = {“forgs”,“做”,“不是”,“死”}; 的printf(“%D”的sizeof(STR)的sizeof(海峡[0])); 我得到的输出为 12 2 ,所以我的疑惑是: 为什么有区别吗? 双方 STR 和海峡[0] 是字符指针,对吧? 解决方案 在大多数情况下,一个阵列名称将衰减到其第一元素的地址的值,以及与类型为相同的指针 ..
发布时间:2016-08-17 20:35:24 C/C++

值是sizeof(一些指针)总是等于四?

例如: 的sizeof(字符*)返回4一样为int * ,久长* ,我已经竭尽所能。是否有任何例外? 解决方案 你得到的保证是,的sizeof(char)的== 1 。有没有其他的担保,包括不保证的sizeof(INT *)==的sizeof(双*)。 在实践中,三分球的大小为2的16位系统上的64位系统上(如果你能找到一个),4在32位系统上,和8,但没有什么依托中获得在给定的尺寸。 ..
发布时间:2016-08-17 20:35:04 C/C++开发

为size_t主场迎战使用intptr_t

C标准保证了为size_t 是一个可以持有任何数组索引类型。这意味着,从逻辑上讲,为size_t 应该可以持有任何指针类型。我读过一些网站,我在谷歌发现,这是合法的和/或应始终工作: 无效* V =的malloc(10); 为size_t S =(为size_t)V; 于是在C99,该标准引入了使用intptr_t 和 uintptr_t形式类型,这是符号和无符号类型保证要能容纳指针: ui ..
发布时间:2016-08-17 20:34:54 C/C++

为什么我得到一个神秘的崩溃或QUOT;分段故障"当I /扫描数据复​​制到一个未初始化的指针?

此问题是为了用作性质的所有常见问题参考: 为什么我收到一个神秘的崩溃或“段错误”时,I /扫描数据复​​制到一个未初始化的指针的地址? 例如: 的char * PTR; 的strcpy(PTR,“世界你好”); //崩溃了! 或的char * PTR; scanf函数(“%S”,PTR); //崩溃了! 解决方案 一个指针是一种特殊类型的变量,它可以只包含另一个变量的地址。它不能 ..
发布时间:2016-08-17 20:34:40 C/C++

是什么char * const的,并为const char *之间的区别?

有什么区别: char * const的 和为const char * 解决方案 不同的是,为const char * 是一个指向一个为const char ,而 char * const的是一个常量指针字符。 被指向的第一,值不能被改变,但指针即可。第二,该值被指向可以改变但指针不能(类似于参考)。 有也是为const char * const的 这是一个常量指针,以一个恒 ..
发布时间:2016-08-17 20:33:15 C/C++

我应该明确地转换malloc()函数的返回值?

我想请教一下以下的情况: 的char *温度; TEMP =的malloc(10); 由于的malloc的返回类型是无效* ,将通过的malloc 隐式转换为的char * 之前被分配到临时类型?是什么标准说,在这方面? 如果我们的指针变量是一些结构类型,例如:结构节点*温度; TEMP =(结构节点*)malloc的(的sizeof(结构节点)); 如果我们没有它转换为结构节点* 类型 ..
发布时间:2016-08-17 20:32:51 C/C++

箭头操作符( - >)用法在C

我目前正在读称为一个良好的入门书学习C“自学℃的21天”(我已经学会了Java和C#,所以我以更快的速度移动)。我正在读的指针章和 - >(箭头)运算符上来没有任何解释。我认为这是用于调用部件和功能(像。(点)运算的等效的,但对于指针而不是成员)。但我不能完全肯定。我能请得到一个解释和code样? 解决方案 foo->酒吧等同于(*富)的.bar ,也就是说,它被调用成员栏从结构的富 ..
发布时间:2016-08-17 20:32:31 C/C++

如何从在C中的指针获取数组的大小?

我已经分配的的“数组” MYSTRUCT 尺寸 N 是这样的: 如果(NULL ==(P =释放calloc(的sizeof(结构MYSTRUCT)* N,1))){ / *处理错误* / } 后来,我只能访问 P ,再也不用 N 。有没有一种方法来确定只给定指针数组的长度 P ? 我想它的必须的可能,因为免费(P)就是这样做的。我知道的malloc()跟踪它多少内存分配,这就是为什么它知 ..
发布时间:2016-08-17 20:32:05 C/C++