#includeint main () { int a = 10 ; //在内存中开辟一块空间 int * p = & a ; / /这里我们对变量a,取出它的地址,可使用&操作符。 //a变量占用4个字节的空间,这里是将a的4个字节的第一个字节的地址存放在p变量 中,p就是一个之指针变量。 *pa=100; printf("%dn",a);// 这时候就可以打印出100 return 0 ; }
int main()
{
char ch='a';
char*pc=&ch;//
*pc='x';
printf("%cn‘,ch);//*是解引用操作符,它的意思是通过pc中存放地址,找到pc指向的内容。
return 0;
}
int main()
{
char ch='e';
int a=10;
int *pa=&a;
char*pc=&ch;
printf("%dn",sizeof(pa));//4
printf("%dn",sizeof(pc));//4
return 0;
}
因为指针存的是地址,大小取决于平台!
32位 平台 指针大小为4字节
64位 平台 指针大小为8字节
结构体如定义一个结构体:
typedef struct Stu { char name [ 20 ]; // 名字 int age ; // 年龄 char sex [ 5 ]; // 性别 char id [ 20 ]; // 学号 } Stu ; // 分号不能丢 int main () { struct Stu s1={"张安",18,"男","202212012"}; printf("%s %d %s %s",s1.name,s1.age,s1.sex,s1.id); //结构体变量 .结构体成员,一点要加点 }
如果想输入结构体数据
scanf("%s %d %s %s",&s1.name,&(s1.age),s1.sex,s1.id); //第二个如果不括号起来就是s1地址了,因为name,sex,id是数组,age不是数组,得括起来。



