小小程序猿,如何入门?(攻略二)

书接上回~

3.5 常量

C语言中的常量和变量的定义的形式有所差异。

C语言中的常量分为以下几种:

  • 字面常量
  • const 修饰的常变量
  • #define 定义的标识符常量
  • 枚举常量
#include <stdio.h>
//举例
enum Sex
{
    MALE,
    FEMALE,
    SECRET
};
//括号内的MALE,FEMALE,SECRET是枚举常量可能取得值
//枚举常量的默认值是从0开始,依次向下递增的

int main()
{
    3.14;//字面常量
    1000;//字面常量
    
    const float pai=3.14f;  //这里的pai是const修饰的常变量
    pai=5.14;//被const修饰后不可以直接修改!
    
    //#define的标识常量(也不可直接修改)
    #define MAX=100
    printf("MAX=%d\n",MAX);
    
    return0;
}

注:上面例子中的pai被称为const修饰的常变量,const修饰的常变量在C语言中只是在语法层面限制了变量pai不能直接被改变,但是pai本质上还是一个变量,所以叫常变量。

4、字符串+转义字符

4.1字符串

"hello word.\n"

这种由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal),简称为字符串。

注:字符串的结束标志是一个\0的转义字符,在计算字符串长度的时候\0是结束标志,不算作字符串的内容。

#include <stdio.h>
//下面代码,打印结果是什么?为什么?(突出'\0'的重要性)
int main()
{
    char arr1[] = "bit";
    char arr2[] = {'b', 'i', 't'};
    char arr3[] = {'b', 'i', 't','\0'};
    printf("%s\n", arr1);
    printf("%s\n", arr2);
    printf("%s\n", arr3);
    return 0;
}

  • 当使用"bit"字符串输出时,编译器会默认字符串最后有一个\0

  • 当用单个字符形式输出时,arr2后面并没有\0,所以它会一直打印,直到找到\0才会停止,所以才会出现一堆乱码
  • 当我们给arr3后面加上\0时,它就能正常输出了

4.2 转义字符

如果我们要在屏幕上打印一个目录: c:\code\test.c

我们该如何写代码?

#include <stdio.h>
int main()
{
    printf("c:\code\test.c\n");
    return 0;
}

实际上程序运行的结果是这样的:

为什么会打印不全呢?

这里就不得不提一下转义字符了。转义字符顾名思义就是转变意思。下面看一些转义字符:

由这个表格可知,当我们在t、n前面加上\时,他们所表达的意思就不同了,不会被打印出来。那我们如何解决这个问题呢?

这就用到了\\(反斜杠转义字符)

#include <stdio.h>
int main()
{
    //问题1:在屏幕上打印一个单引号',怎么做?
    //问题2:在屏幕上打印一个字符串,字符串的内容是一个双引号“,怎么做?
    printf("%c\n", '\'');
    printf("%s\n", "\"");
    return 0;
}
//程序输出什么?
#include <stdio.h>
int main()
{
    printf("%d\n", strlen("abcdef"));
    // \62被解析成一个转义字符
    printf("%d\n", strlen("c:\test\628\test.c"));
    return 0;
}

5. 注释

1. 代码中有不需要的代码可以直接删除,也可以注释掉

2. 代码中有些代码比较难懂,可以加一下注释文字

比如:

#include <stdio.h>
int Add(int x, int y)
{
    return x+y;
}
/*C语言风格注释
int Sub(int x, int y)
{
    return x-y;
}
*/
int main()
{
    //C++注释风格
    //int a = 10;
    //调用Add函数,完成加法
    printf("%d\n", Add(1, 2));
    return 0;
}

注释有两种风格:

C语言风格的注释 /*xxxxxx*/

  • 缺陷:不能嵌套注释

C++风格的注释 //xxxxxxxx

  • 可以注释一行也可以注释多行

6. 选择语句

如果你坚持学习,校招时拿一个好offer,走上人生巅峰。

如果你半途而废,毕业等于失业,回家卖红薯。

这就是选择!

#include <stdio.h>
int main()
{
    int coding = 0;
    printf("你会好好学习吗?(选择1 or 0):>");
    scanf("%d", &coding);
    if(coding == 1)
   {
       printf("坚持,你会有好offer\n");
   }
    else
   {
       printf("放弃,回家卖红薯\n");
   }
    return 0;
}

7. 循环语句

有些事必须一直做,比如日复一日的学习。

还比如:

C语言中如何实现循环呢?

  • while语句
  • for语句
  • do ... while语句
//while循环的实例
#include <stdio.h>
int main()
{
    printf("打代码\n");
    int line = 0;
    while(line<20000)//如果我的有效代码小于20000行
   {
        line++;
        printf("我要继续努力敲代码\n");
   }
    if(line>=20000)//如果我的有效代码大于等于20000行
        printf("好offer\n");
    return 0;
}

8. 函数

#include <stdio.h>
int main()
{
    int num1 = 0;
    int num2 = 0;
    int sum = 0;
    printf("输入两个操作数:>");
    scanf("%d %d", &num1, &num2);
    sum = num1 + num2;
    printf("sum = %d\n", sum);
    return 0;
}
//上述代码,写成函数如下:
#include <stdio.h>
int Add(int x, int y)
{
   int z = x+y;
   return z;
}
int main()
{
    int num1 = 0;
    int num2 = 0;
    int sum = 0;
    printf("输入两个操作数:>");
    scanf("%d %d", &num1, &num2);
    sum = Add(num1, num2);
    printf("sum = %d\n", sum);
    return 0;
}

函数的特点就是简化代码,代码复用。

9. 数组

要存储1-10的数字,怎么存储?

C语言中给了数组的定义:一组相同类型元素的集合

9.1 数组定义

int arr[10] = {1,2,3,4,5,6,7,8,9,10};//定义一个整形数组,最多放10个元素

9.2 数组的下标

C语言规定:数组的每个元素都有一个下标,下标是从0开始的。

数组可以通过下标来访问的。

比如:

int arr[10] = {0};

//如果数组10个元素,下标的范围是0-9

9.3 数组的使用

如何储存十个元素呢?

如下:

#include <stdio.h>
int main()
{
 int i = 0;
 int arr[10] = {1,2,3,4,5,6,7,8,9,10};
 for(i=0; i<10; i++)
 {
       printf("%d ", arr[i]);
 }
 printf("\n");
    return 0;
}

输出:


每日新知识

else if的用法

//已知一个函数y=f(x),当x < 0时,y = 1;当x = 0时,y = 0;当x > 0时,y = -1。
//一行,输入一个整数x。(-10000<x<10000)
//一行,输出y的值。
//两种方法比较
//else if的用法
#include<stdio.h>//第一种方法

int f(int x)
{
	if (x <= 0)
	{
		if (x < 0)
		{
			return 1;
		}
		else
			return 0;
	}
	else
		return -1;
}
int main()
{
	int y;
	scanf("%d", &y);
	int z = f(y);
	printf("%d\n", z);
	return 0;
}


#include <stdio.h>//第二种方法
int main()
{
	int x = 0;
	int y = 0;
	scanf("%d", &x);
	if (x < 0)
		y = 1;
	else if (x == 0)
		y = 0;
	else
		y = -1;

	printf("%d\n", y);
	return 0;
}

未完待续~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值