解析
1.编译错误,*s为字符“a” ,*t为字符变量 字符!=字符变量所以错误!
2.运行会错误,因为程序没有为t分配存储空间
3.将一固定的地址赋值给一个整型指针是非常危险的,相当于在地址为10的地方开辟了一个空间存放11,可能不合法。
4.编译错误,和第一个情况一样 整型!=整型指针
注意:这种情况下会误解为 指针-》指针,其实只是指针等于指针,是横向并非纵向。
思考
整数情况下的
#include<stdio.h>
int main(void){
int a=8;
int *s=&a;
int *t;
*t=*s;
printf("%d",*t);
}
传入函数情况下
#include<stdio.h>
void test(char a[]){
printf("%s",a);
return;
}
int main(void){
char *s="abc";
char *t;
t=s;
test(t);//a[] 相当于 *a
}