若有说明:int i,j=7,*p=&i;,则与i=j; 等价的语句是( ).A.i= *p;B.*p=*&j; C.i=&j; D.i=* *p;有一个问题没有搞清楚:根据int i 得 i 是一个数,而&i则表示一个地址,而*p表示一个指针变量,表示一个数了.上面

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/19 07:46:59
若有说明:int i,j=7,*p=&i;,则与i=j; 等价的语句是( ).A.i= *p;B.*p=*&j; C.i=&j; D.i=* *p;有一个问题没有搞清楚:根据int i 得 i 是一个数,而&i则表示一个地址,而*p表示一个指针变量,表示一个数了.上面

若有说明:int i,j=7,*p=&i;,则与i=j; 等价的语句是( ).A.i= *p;B.*p=*&j; C.i=&j; D.i=* *p;有一个问题没有搞清楚:根据int i 得 i 是一个数,而&i则表示一个地址,而*p表示一个指针变量,表示一个数了.上面
若有说明:int i,j=7,*p=&i;,则与i=j; 等价的语句是( ).A.i= *p;B.*p=*&j; C.i=&j; D.i=* *p;
有一个问题没有搞清楚:根据int i 得 i 是一个数,而&i则表示一个地址,而*p表示一个指针变量,表示一个数了.上面的*p=&i,不就表示把一个地址赋值给一个变量了嘛?
我是个菜鸟,这样理解是不真确的,我该怎样理解呢?

若有说明:int i,j=7,*p=&i;,则与i=j; 等价的语句是( ).A.i= *p;B.*p=*&j; C.i=&j; D.i=* *p;有一个问题没有搞清楚:根据int i 得 i 是一个数,而&i则表示一个地址,而*p表示一个指针变量,表示一个数了.上面
解析:题中说,定义整型变量i和j,并且初始化了把7赋值给变量j.*p=&i是说使整形指针变量p指向了变量i的地址(即变量p中存储了变量i的地址).i=j是说给7的值赋给变量i,即i的值为7.与之等价,那就是同样是赋值表达式,B答案 *p=*&j;中&j是取地址,*&j表示取地址中的值,即为7,赋给变量p里的值(即是i).

若有说明:int i,j=7,*p=&i;,则与i=j; 等价的语句是( ).A.i= *p;B.*p=*&j; C.i=&j; D.i=* *p;有一个问题没有搞清楚:根据int i 得 i 是一个数,而&i则表示一个地址,而*p表示一个指针变量,表示一个数了.上面 在 C 语言中,若有以下定义和赋值语句int b[2][3]={0} (*p)[3]; p=b; 则对 b 数组的第 i 行第 j 列(假如 i,j 已正确说明并赋值)元素的非法引用为___________A、*( *(p+i)+j) B、*(p[i]+j) C、*(p+i)+j D、(*(p+i))[j] 若有说明:int i,j=5,*p=&i;则与i=j等价的语句是()答案是*p=*&j为什么是这样的? int i,j=2;*p=&i;*p=(*&j+1)^j; i=? 若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是 A) n=(i=2,++i); B) j++; C) ++(i+1); D) x=j>0 二维数组的等价问题*若有以下定义和赋值语句,则与&s[i][j]等价的是().int s[2][3]={0},(*p)[3],i,j;p=s; i=j=1;A) *(*(p+i)+j)B) *(p[i]+j)C) *(p+i)+j D) (*(p+i))[j ] 34、有以下程序 int f(int b[][4]) { int i,j,s=0; for(j=0;j2) i=3-j; s+=b[i][j]; 麻烦说明详细原因.谢谢34、有以下程序 int f(int b[][4]) { int i,j,s=0; for(j=0;j2) i=3-j; s+=b[i][j]; } return s; } main( ) { int a[4 这两个程序有什么区别呢?#include void swap( int *p,int *q){ int *t;*t=*p; *p=*q; *q=*t;}main(){ int i=10,j=20,*a=&i,*b=&j;swap(a,b); printf(i=%d j= %d ,i,j );}B)#include void swap( int *p,int *q){ int t;t=*p; *p=*q; *q=t;}main(){ int i main(){int i=5,p=(i++)+(i++)+(i++);q=(++j)+(++j)+(++j);printf(%d,%d,%d,%d,p,q,i,j);} C语言 p=(i++)+(i++)+(i++); q=(++j)+(++j)+(++j);void main(){  int i=5,j=5,p,q;  p=(i++)+(i++)+(i++);  q=(++j)+(++j)+(++j);  printf(%d,%d,%d,%d,p,q,i,j);  }对P=(i++)+(i++)+(i++)应理解为三个i相加,故P值为15.然后i再 下面这个程序哪里有语法问题#include #define N 10void sele(int*p){int i,j,t;for(i=0;i 若有定义:int i,j;则表达式(i=2,j=5,i++,i+j++)的值是( ) 有以下程序void sort(int a[],int n){ int i,j,t;for(i=0;i 求高手解释一下这段程序#include class Test {int x,y; public: Test(int i,int j=0) {x=i;y=j;} int get(int i,int j) {return i+j;} }; void main() {Test t1(2),t2(4,6); int (Test::*p)(int,int=10); p=Test::get; cout #include int main() { int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; int (*p)[4],i,j; p=a;#includeint main(){int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int (*p)[4],i,j;p=a;scanf(%d,%d,&i,&j);printf(a[%d,%d]=%d ,i,j,*(*(p+i)+j));return 0;}要输 #include int main(void) { static int a[4][4]; }#include int main(void) { static int a[4][4]; int *p[4],i,j; for(i = 0; i < 4; i++) p[i] = &a[i][0]; for(i = 0 ; i < 4; i++) { *(p[i] + i) = 1 ; *(p[i] + 4 - (i + 1)) = 1; } for(i = 0; i < 4; i++) { for( 假如有int i=1,j=7,a;a=i+j%4!=0;则a= #includeusing namespace std;template int Search(T a[],int now,int all){int min,j = now;min = a[now];for(int i = now + 1; i < all; i ++){if(min > a[i]){min = a[i];j = i;}}return j;}template void swap(int& a,int& b){T p;p = a;a = b;b = p;}template void