int *p = new int[100] 编译失败

来源:学生作业帮助网 编辑:作业帮 时间:2024/09/23 20:26:28
int *p = new int[100] 编译失败
struct m { int x; int *y; }*p; int a[4]={12,13,-40,100};

由于p=b,即p指向b所在内存p->x就是b[0].x,所以等于10printf("%d\n",++p->x);中++在前,即先进行+1再返回值给printf,所以输出11为什么后面的也是11呢,举个

定义数组a[ ],为什么int *p=&a[0];等于int *p; p=&a[0];

一个是声明时初始化,一个是先声明后赋值,在C语言里两者等价.更好的写法应该是int*p=a;因为C语言数组名等于首个元素的地址,也就是a==&a[0]

int a[10],*p=a;则p+4表示什么?

p是指向int数据类型的指针,由于int*p=a;所以他指向a[0]p+4表示的是a[4]的地址,所以*(p+4)(取地址p+4上的值)==a[4]p表示的是a[0]的地址

在int a=10,*p=&a;语句中,p的值是

C变量a的地址值,因为p是个指针型变量,&a表示a的地址,*p=&a表示指针p指向a的地址

int *p,a[10]; for(p=a;p

a代表数组的首地址,也就是第一个元素的地址.“p=a”就是指向数组的第一个元素;a+5:表示从首地址向后偏移5个存储单元,也就是第6个元素.题目的意思是访问第一个元素到第6个元素.

int a[3][8],*p; printf("\n a+0=%-10p",a+0);

a[0]=*(a+0)&a[0]=&*(a+0)=a+0因此a+0就是a[0]的地址至于%-10p:%p指输出地址,10表示长度,-表示左对齐,因此这个输出表示,输出a[0]的地址,总长为10,左对齐

fun ( int *p ) { int a=10; p = &a; ++a; } main ( ) { int a=5

等于5呢请注意函数中新建立的a是不同于主函数中已有的变量a的

Int a=1; Int *p; p=&a; printf(“%d\n”,*p); 和Int a=1; Int*p; *

话说:第一个:inta=1;\\定义一个整型变量a并赋初值1int*p;\\定义一个整型指针变量p没赋初值,但是紧接着下面赋啦p=&a;\\将a的地址赋给pprintf("%d\n",*p);\\利用

int m(char * p) { p=malloc(10); return 1;} int main() { char

原先的是传值,导致实参p没有分配内存成功(分配给函数里的形参p了)修改为intm(char**p){*p=(char*)malloc(10);return1;}intmain(){char*p;m(&

# include void fun (int p) { int d=2; p=d++; printf("%d",p);

printf("%d\n",a);在主函数中输出a,而被调函数fun并没有返回值的,其类型为void,所以被调函数中的p值无法返回主调函数,他们之间是值传递,非址传递,改成下面两种都可以:一:#inc

struct st{int x,int*y;}*p; int s[]={5,6,7,8} st a[]={10,&s[0

我是这样理解的:sta[]={.}实际上是a[0]={10,&s[0]},a[1]={20,&s[1]}.p=a;是将a的首地址赋值给p也就是a[0]的地址,此时p指向a[0],p->x为10;(++

void fun(int p) { int d=2; p=d++; printf("%d",p); } main() {

21应该分别是2和1再问:能说的详细一些么?再答:对fun函数参数赋值只在fun函数内有效,数据是不会影响到函数区域以外的,p=d++,先将d=2的值赋给p然后d的值变成3,fun函数调用完成后,a的

int a [4][10] ,*p; p=a;这句话为什么错了啊?int a[9],*p; p=a;和上面的区别?

inta[4][10],*p;p=&a[0][0];这样才正确,p是一级指针,a是2维数组名,算是二级指针了,因此p=a是不行的.inta[9],*p;p=a;a这里是数组名,是首地址,算是一级指针,

int a[4][10],*p

p的类型是int*,跟a的类型并不匹配.你可以这样写int(*p)[10]=a;这样是可以的.因为a的类型是int[4][10];这个类型说明a是个二维数组,二维数组的第一维可以通过指针来替代,然后剩

若有定义int a[10],*p=a;,则p+5表示什么

a是个常量,不能变化,但是p是个指针变量,可以加减,p的加减与p的类型有关,如果p是个int则,每次加四个字节,就是int型的长度,其它的也是相同的.char每次加一个字节.p+5代表第六个数值的地址

int a[]={5,10,15,20,25,30}; int b=LA(a,4); int c=LA(a+2,3);p

inta[]={5,10,15,20,25,30};这一句的意思是定义一个数组a,a中存了5,10,15,20,25,30这6个数LA函数有两个参数,一个数组a(a就代表一个指针值),一个n,函数的作

int a[5]={2,4,6,8,10},*P,* *k; p=a; k=&p; printf("%d",*(p++)

P++,先把P赋值出去,自己再增.printf("%d",*(p++));等同于:printf("%d",*(p));P++;p是数组a的首地址,因此输出a【0】即,2,同样,k输出p++后的a【1】

struct S { int i; int * p;}; main () {S s ; int *p =&s.i ; p

程序应该在最后一句崩溃,structS{inti;int*p;};main(){Ss;int*p=&s.i;//p指针指向s结构体中变量ip[0]=4;//p[0]=4;给i赋值4;p[1]=3;//

#include void main( ) { int a=3,b=5; int *p,*q; void f1(int

a=3,b=5a=5,b=3再问:可以详细解释一下吗?再答:voidf1(intx,inty)x,y传进去的都是临时变量,出函数体后值不变;还是a=3,b=5voidf2(int*x,int*y)传进