-
这里的第一个 * 符号和它前面的数据类型表示返回值是这种类型的指针!!
Malloc 成功申请空格后,返回所请求空格的第一个地址,并将此地址转换为您请求的指针类型!!
至于宏定义,可以写成 p=(char *)malloc(9) 以获得更好的可移植性;
C编程大师团队正在招募新人,有兴趣的人赶快联系,一起学习,一起工作!!
-
指针引用 * 的对象的数据类型与前面的描述一起是指向该对象的指针;
第二个*是乘法;
指针所引用的对象对的数据类型 *) 是指向被强制转换对象的指针;
可以直接写成 p=(char *)malloc(9),但不建议用,推荐。
#define size 9
p=(char*)malloc(size) 或。 const int p = 9;
p=(char *)malloc(size) 这样如果多次使用需要修改,只需要更改一个位置,这样可以避免遗漏,而且这种形式也很容易记住!
-
可以这样写:
char *p;
p=(char *)malloc(9);
p = (char*)malloc(sizeof(char) *9)
p[0] ='h';
p[1] ='e';
p[2] ='l';
p[3] ='l';
p[4] ='0';
p[5] ='b';
p[6] ='o';
p[7] ='y';
p[8] =0;
printf("%s",p);
free(p);
那么为什么要改用sizeof(char) *9,主要是为了方便移植,其他电脑操作系统或编码器中char的长度可能不同。
-
不,规则是要遵守的,不应该随意改变。
-
指针数组和数组指针是两个不同的概念,你在这里给出的定义实例实际上是指针数组的定义。
指针数组意味着所定义数组的每个元素都是对应数据类型的指针,可以使用循环语句进行打开空格的操作,例如:for char *p[10]; 是的。
for(i=0;i<10;i++)
p[i]=(char *)malloc(sizeof(char)*n);为每个指针请求 n 个字符的存储空间。
打开后,p的使用类似于二维数组的格式,可以有效使用两个下标,如p[0][0]='a';
你也可以分配一个字符串,如 p[2]="beijing";当然,字符串长度应小于 n。
另一方面,数组指针是定义为指向固定大小的顺序空间的指针,格式如下:
char (*pa)[10];定义一个指向具有 10 个元素的字符数组的指针,int (*p)[10];
应用格式可以参考以下步骤,在申请空格、赋值、输出后,可以观察到100赋值到第五行的第十个元素,指针可以像二维数组一样通过两个下标来指代请求的空间。
#include
main()}
-
int p:一级指针,表示 p 点所在的地址是 100int 值,并且 p 声明为整数指针,并为该指针分配存储空间。 但在这种情况下,它是一个随机数,我们称之为指向不确定的内存地址。
当用户说“direct p 5”时,将租金写入不可预测的内存地址上的整数 5。 这是不允许的,可能会导致程序崩溃。
p = a;然后,将现有变量 A 的地址写入指针 p,我们说指向 a 的指针可以通过变量 p 对变量 A 进行正常的信令操作。