初识C语言(三)

指针

#include
int main ()
{
int a = 10 ; //在内存中开辟一块空间
int * p = & a ; / /这里我们对变量a,取出它的地址,可使用&操作符。
   //a变量占用4个字节的空间,这里是将a的4个字节的第一个字节的地址存放在p变量
中,p就是一个之指针变量。
*pa=100;
printf("%d\n",a);// 这时候就可以打印出100
return 0 ;
}

int main()

{

     char ch='a';

     char*pc=&ch;//

     *pc='x';

printf("%c\n‘,ch);//*是解引用操作符,它的意思是通过pc中存放地址,找到pc指向的内容。

return 0;

}

int main()

{

     char ch='e';

     int a=10;

     int *pa=&a;

     char*pc=&ch;

printf("%d\n",sizeof(pa));//4

printf("%d\n",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不是数组,得括起来。

你可能感兴趣的:(c,c#)