有关c语言指针的问题
发布网友
发布时间:2023-10-24 17:48
我来回答
共2个回答
热心网友
时间:2024-04-04 13:14
int t = 0;
int *t1 = NULL;
int a[] = {1, 2, 3, 4, 5};
t为一个变量,t1为指针变量,
a为数组名(指向第一个元素),a+i(指针)表示指向a[i],即*(a+i) == a[i],或a+i==&a[i];
赋值方法:
要想改变t的值则:t = a[i];或t = *(a+i);
要想改变t1的值则需要给他赋值指针,t1 = a+i;或 t1 = &a[i];这时t1指向的地方改变了,
t1指向a[i]。
要想改变t1所指向地址的值则,*t1 = a[i];或*t1 = *(a+i);
在你的问题中:t应该是 int t = 0;t是个整型变量,需要整型变量赋值给它,t=*(a+i)
表示给t赋值a[i]。*(a+j)=t;类似;
如果真想改为*t=*(a+i);*(a+j)=*t,可以定义t为指针变量;
例如:int t1 = 0;
int *t = &t1 ;
这样就可以使用*t=*(a+i);*(a+j)=*t,
刚看到你右边的图片,代码中的用法绝对是错的
热心网友
时间:2024-04-04 13:14
你的理解没问题,关键这题你得看t是定义为什么是int t还是int*t,明白了吧?你的贴图,明显看出t是定义为int