C语言学习 ④

指针

内存:是电脑上特别重要的存储器,计算机中所有程序的运行都是在内存中进行的

     一个变量,用来存放地址的

#include<stdio.h>

int main()
{
    int a = 10;//4个字节
    int* p = &a;//取地址
    //有一种变量是用来存放地址的 -  指针变量
    printf("%p\n",&a);
    printf("%p\n",p);
    return 0;
}
#include<stdio.h>

int main()
{
    int a = 10;//4个字节
    int* p = &a;//取地址
    *p = 20;//* - 解引用操作符/间接访问操作符
    printf("a = %d\n",a);//20
    return 0;
}

 

结构体

#include <stdio.h>

struct Book
{
	char name[20];
	short price=55;
};//分号不可缺
int main()
{
    //利用结构体类型 创建一个该类型的结构体变量
	struct Book b1 = { "C语言程序设计" };
	printf("书名:%s\n", b1.name);
	printf("价格:%d元\n", b1.price);
	b1.price = 15;
	printf("修改后的价格:%d元\n", b1.price);
	return 0;
}

指针(pb)运用

#include <stdio.h>

struct Book
{
	char name[20];
	short price=55;
};
int main()
{
	struct Book b1 = { "C语言程序设计" };
    struct Book*pb = &b1;
    //利用pb打印出我的书名和价格
    printf("%s\n",(*pb).name);
    printf("%d\n",(*pb).price);
	return 0;
}
#include <stdio.h>

struct Book
{
	char name[20];
	short price=55;
};
int main()
{
	struct Book b1 = { "C语言程序设计" };
    struct Book*pb = &b1;
    //利用pb打印出我的书名和价格
    printf("%s\n",pb->name);
    printf("%d\n",pb->price);
    //.    结构体变量.成员
    //->   结构体指引->成员
	return 0;
}

 更改书名的方法

#include <stdio.h>
#include <string.h>

struct Book
{
	char name[20];//字符串
	short price=55;//变量
};
int main()
{
	struct Book b1 = { "C语言程序设计" };
    strcpy(b1.name,"C++");//字符串不能更改,只能重新拷贝一个名字放进去
    //strcpy-string copy - 字符串拷贝 - 库函数 -string.h
    b1.price = 15;//变量,可以更改
    printf("%s\n"b1.name);
    printf("%d\n"b1.price);
	return 0;
}

分支语句(选择语句)和循环语句

一、分支语句(选择结构)

1、if语句

语法结构:

if(表达式)

    语句;

if(表达式)

   语句1;

else

   语句2;

//多分支

if(表达式1)

    语句1;

else if(表达式2)

    语句2;

else

    语句3;

#include<stdio.h>

int main()
(
    int age = 10;
    if(age<18)
       printf ("未成年\n");
    else
       printf("成年\n");
    return 0;
}
#include<stdio.h>

int main()
(
    int age = 10;
    if(age<18)
       printf ("未成年\n");
    //else if(18<=age<28)
    //   printf("青年\n");
    //结果是青年 ---> 18<=age为假=>0  0<28为真 所以能打印
    else if(age>=18 && age<28)
        printf("青年\n");
    else if(age>=28 && age<50)
        printf("壮年\n");
    else if (age>=5- && age<90)
        printf("老年\n");
    else
        printf("老不死\n");
    return 0;
}

else 和离他最近的未匹配的if进行匹配 

练习:判断一个数是否为奇数,输出1-100之间的奇数

#include <stdio.h>

int main()
{
    int i = 1;
    while(i<=100)
    {
        if(i%2 == 1)
             printf("$d ",i);
        i++;
    }
    return 0;
}
#include <stdio.h>

int main()
{
    int i = 1;
    while(i<=100)
    {
        printf("%d ",i);
        i+=2;
    }
    return 0;
}

 2、switch语句

语法结构

 switch(整形表达式)

{

        语句项; 

}

语句项:

 case:整形常量表达式

#include <stdio.h>

int main()
{
    int day = 0;
    scanf("%d",&day);
    switch(day)
    {
    case 1:
        printf("星期一\n");
        break;
    case 2:
        printf("星期二\n");
        break;
    case 3:
        printf("星期三\n");
        break;
    case 4:
        printf("星期四\n");
        break;
    case 5:
        printf("星期五\n");
        break;
    case 6:
        printf("星期六\n");
        break;
    case 7:
        printf("星期日\n");
        break;
    }
    return 0;
}

#include <stdio.h>

int main()
{
    int day = 0;
    scanf("%d",&day);
    switch(day)
    {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
        printf("工作日\n");
        break;
    case 6:
    case 7:
        printf("休息日\n");
        break;
    default:
        printf("输入错误\n");
        break;
    }
    return 0;
}

二、循环语句 

1、while循环

语法结构:

if(条件)

      语句;

练习:打印1-10  

#include <stdio.h>
int main()
{
    int i = 1;
    while(i<=10)
    {
        printf(" %d",i);
        i++;
    }
    return 0;
}

 pswhile循环里有break和continue的情况

#include <stdio.h>
int main()
{
    int i = 1;
    while(i<=10)
    {
        if(i == 5)
            break; 
        printf(" %d",i);
        i++;
    }
    return 0;
}
//只打印出 1 2 3 4 在为5时就跳出循环
#include <stdio.h>
int main()
{
    int i = 1;
    while(i<=10)
    {
        if(i == 5)
            continue;
        printf(" %d",i);
        i++;
    }
    return 0;
}
//打印 1 2 3 4死循环 continue会跳过其之后的语句,所以将i++放在前面,如下
#include <stdio.h>
int main()
{
    int i =0;
    while(i<=10)
    {
        i++;
        if(i == 5)
            continue;
        printf(" %d",i);
    }
    return 0;
}
//打印 1 2 3 4 6……

总结:continue时用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接跳转到while语句的判断部分,进行下一次循环的入口判断

 补充:getchar()       putchar()的用法

#include <stdio.h>
int main()
{
    int ch = getchar();//接收一个键盘的字符,ch来接收其返回值
    putchar(ch);//打印ch接收的键盘字符
    return 0;
}
//getchar();的作用同printf("");相同
#include <stdio.h>
int main()
{
    int ch = 0;
    while((getchar())!=EOF)//ctrl + z 赋予ch一个EOF,即停止循环
    {
        putchar(ch);
    }
    return 0;
}
//EOF - end of file   文件结束标志

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值