为您找到"

C语言int a=100, *p=&a为什么打印了来的是100呢

"相关结果约100,000,000个

...比如int *p=5;char *a="abc",为何这里*p输出为5,p为地址,而这里同样...

int *p=5; //编译出错,这是不正确,应该赋值地址 printf("%d,%c\n",p,*a); //这里*a是指a[0],即字母a,格式符用%c printf("%d,%s\n",p,a);//这是a是字符串的地址,格式用%s,,输出字符串"abc"

C语言 定义 int a[ ]={1,2,3,4},y,*p=&a[1];,则执行y=(*--p)++后,y...

这好解释啊,因为++是后++,要等到把(*--p)的值赋给y后(*--p)的值才会增1。所以结果是y=1,a[0]=2。你可以用下面的代码验证:int main(void){ int a[ ]={1,2,3,4},y,*p=&a[1]; y=(*--p)++; printf("%d %d\n",y,a[0]); return 0;} ...

已知:int a=1,*p=&a;,则以下表达式值为1的有( )。 A、*p B、p[0...

A:p指向a的地址,*p自然为1;B:指针数值可以表现为数组的形式,第一个元素对应p[0];C:*&a等同于*p;

计算机c语言问题,急后天就考试了。求详细步骤。这个提我还用C++做了...

答案的确是144 其实就是a这个数组所有元素的和 这个主要是在这儿 int (*p)[4]=a;声明一个指向含有4个元素的数组的指针变量p,同时让他指向数组a的首地址 所以 (*(p+i)+j)==a[i][j]所以循环就是把a数组中的所有元素的值加到k变量上去,当然是144 ...

C语言指针**p是什么意思

例如:int i=10; //定义了一个整型变量 int *p=&i; //定义了一个指针指向这个变量 int **p1=&p; //定义了一个二级指针指向p指针 那么取出10的值方式为:printf(“i=[%d]\n”,*p);printf(“i=[%d]\n”,**p1);

c语言中有关指针的问题 A)int n,*p=NULL; B)*p=&n; C)scanf("%d",&p...

你好!A正确 B p=&n不正确,*p是指针p里的的值。而&n是地址。不能将地址付给整形值。应该 p=&n;C 应该是p,p已经是地址,D应该是*p,*p是值 如果对你有帮助,望采纳。

c语言指针:int a[3][4],(*p)[4];p=a;为什么*p会等于&a[0][0]? p...

&a=a = a[0]=&a[0][0]。他们的值是一样的,都是地址,但是他们代表的步长不一样。步长体现在你做加法的时候,比如(&a++),地址就偏移了sizeof(int )*3*4的后面,到了这一片数组的后面,a++就是偏移了sizeof(int)*4,偏移到a[1],a[0]++就是偏移了sizeof(int),到了&a[0]...

c语言答案

void sort (int*a, int*b,int*c); int a,b,c; scanf("%d%d%d",&a,&b,&c); sort(&a,&b,&c); printf("a=%d,b=%d,c=%d\n",a,b,c);}void sort (int *a, int *b,int *c){ int tmp; if (*a>*b) { tmp=*a; *a=*b; *b=tmp; } if (*a>*c) { tmp=*a; *a=...

int**p=new int*; int a[3][3]; *p=a[0];//正确 p=&(a[0]);//不正确...

c语言里,二维数组和二级指针完全是两回事 c语言里二维数组是由一维数组所组成的一维数组 int a[3][3];//a的元素是int[3] ,这里int[3]是一种数据类型(有3个int元素的数组),也就是说a[0]的类型就是int[3],那么a[0]的地址&a[0]的类型自然就是int(*)[3]了 p的类型是int**,&a[...

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

int a[5]={2,4,6,8,10},*p,**k;p=a;//p指向a数组,p保存了a数组的首地址。a[0]是数组的首元素,所以*p的值就是a[0]的值。k=&p;//k指针指向p,k保存了p的地址。(k可以成为指针的指针)printf("%d",*(p++));//表达式“*(p++)”整体的值相当于*p的值,就是a[0]的值...
1 2 3 4 5 6 7 8 9

相关搜索