上嵌学习笔记c/c++

C语言基础在路上 (字符串-结构体)

2016-10-20  本文已影响45人  I踏雪寻梅

C语言基础

字符串

字符串数组

  1. 指针数组
char *p="123";
char *p1="nihao";
char *str[2]={p,p1};//*str1[2]={"123","hihao"};

程序内存空间分配

  1. 栈区:存储局部变量
  2. 静态区(全局区):静态变量,全局变量
  3. 堆区:存放由程序员调用malloc函数时分配的空间。
  4. 文字常量区:常量字符串(只读不能更改)
  5. 代码二进制:代码

结构体类型

struct 结构体名
{
    属性变量;(特征变量)
}
struct Person
{
    char name[10];
    char sex;
    int height;
    float score;
};
struct Person//两个加起来算一个数据类型。
//结构体变量的定义
struct Person person;
person.sex='m';
strcpy(person.name,"xxxx");
person.height=180;
person.score=100;
printf("sex=%c\nname=%s\nheight=%d\nscore=%f\n",person.sex,person.name,person.height,person.score);
struct Person person={"xxx",'w',180,100}
struct Person person2=person;
struct Person
{
    char sex;//0
    int height;//4--7
    char ch;8(得9,根据条件3奥球倍数,所以为12)
};
struct Person
{
    char sex;//0
    char ch[10];//1--10
    int height;//12--15
};

printf("%d",sizeof(struct Person));
#include <stdio.h>
int main()
{
    struct Birthday
    {
        int year;//0-3
        int month;//4-7===double month//8-15
        int day;8-11======//16-19=>24
    };
    struct Person
    {
        char name[10];0-9
        int score;12-15
        char sex;16
        struct Birthday birth;20-31//32====24-47=>48
    };
    struct Person person={"xxx",100,'m',{1990,1,1}};
    printf("person.name=%s,birthday=%d/%d/%d\n",person.name,person.birth.year,person.birth.month,person.birth.day);
}
struct 
{
    int a;
    char b;
}xx,xx1;
struct Student
{
    int score;
    char sex;
}stu1[2]={{12,'m'},{13,'w'}};
struct Person;
{
    int height;
    char sex;
    
};
struct Person person;
struct Person *p=&person;
(*p).sex='m'
(*p).height='120'
printf("sex=%c,height=%d\n",person.sex,person.height);
p->sex='m'
p->height='120'
printf("sex=%c,height=%d\n",person.sex,person.height);
typedef struct Stu
    {
        char name[10];
        int num;
    }Stu;
int main()
{
    int i;
    Student stu[4]={{"xx",123},{"xx1",123},{"xx",122},{"xx2",124}}
    for(i=0;i<4;i++)
    {
        printf("stu[%d].name=%s,stu[%d].num=%d",i,stu[i].name,i,stu[i].name);   
    }
}

//编写程序比较结构体名字的大小进行排序

#include <stdio.h>
typedef struct Stu
    {
        char name[10];
        int num;
    }Stu;
int main()
{
    int i,t;
    Stu temp;
    Stu stu[4]={{"xx3",123},{"xx1",123},{"xx4",122},{"xx2",124}};
    for(i=0;i<4;i++)
    {
        printf("stu[%d].name=%s,stu[%d].num=%d\n",i,stu[i].name,i,stu[i].num);   
    }
    for(i=0;i<3;i++)
    {
        t=strcmp(stu[i].name,stu[i+1].name);
        if(t>0)
        {
            temp=stu[i];
            stu[i]=stu[i+1];
            stu[i+1]=temp;
        }
    }
    for(i=0;i<4;i++)
    {
        printf("stu[%d].name=%s,stu[%d].num=%d\n",i,stu[i].name,i,stu[i].num);   
    }
}
#include <stdio.h>
struct student
{
    int num;
    char name[10];
};
void changevalue(struct student *p)
{
    (*p).num=8;
}
int main()
{   
    struct student stu;
    stu.num=2;
    changevalue(&stu);
    printf("%d\n",stu.num);
}

//练习:自定义一个结构体数组,对数组里面的信息进行自动输入赋值,再利用选择排序进行整理

struct Student
{
    char name[10];
    int num;
};
上一篇 下一篇

猜你喜欢

热点阅读