入门学习计算机第三天——认识常量
编译器:Microsoft Visual Studio 2010
记录第三天学习C语言的博客。
一、常量的分类
1、字面常量:直接写出来的值
int main()
{
3;//字面常量,直接的值
100;
return 0;
}
2、const修饰的常变量
const——具有常属性的变量
用法如下:
int main()
{
const int num = 4;在定义的变量前使用
num = 8;
return 0;
}
此时系统会报错。
再比如用数组函数来证明:
int main()
{
const int n = 10;
int arr[n] = {0};是错误的写法,数组arr[?]中的?应该是个常量
return 0;
}
说明,const 修饰的变量已经具有常量的属性。
但是!在C++中const是被定义为常量的,所以在C++中,是正确的。
const int n = 10;
int arr[n] = {0};
C语言里面不能算常量,而是拥有常属性的变量。
3、#define定义的标识符常量
使用方法如下
#include <stdio.h>
#define MAX 10 定义MAX为10
int main()
{
int arr [MAX] = {0};
printf("%d\n",MAX);
return 0;
}
输出值为10
说明#define 定义的标识符常量为一个常量,而不是具有常属性的变量。
4、枚举常量
例如:色彩三原色:红、黄、蓝。星期:1,2,3,4,5,6,7。
枚举关键字:enum
使用方法如下:
#include <stdio.h>
enum color
{
RED,
YELLOW,
BULE
}; //枚举常量
int main()
{
//enum color a = RED;
printf("%d\n",RED);0
printf("%d\n",YELLOW);1
printf("%d\n",BULE);2
return 0;
}
输出的值为:
二、字符串+转义字符+注释
1、字符串
"hello bit.\n"
这种由双引号引起来的一串字符称为字符串字面值,或者简称字符串。
例子如下:
int main()
{
"abcdef";
"hello bit";
"";空字符串
}
!第二种情况:
int main()
{
char arr1[] = "abc";
char arr2[] = {'a','b','c'};
printf("%s\n",arr1);
printf("%s\n",arr2);
return 0;
}
此时第二行出现了乱码,所以要对程序进行调试。
首先按下 ctrl + f10 ,
拖动黄色箭头,使其指向 printf("%s\n",arr1);再点击「调试」,「窗口」,「监视」,「监视1」。
输入arr1,arr2。出现如下的窗口
可以看出arr1有4个值,而arr2只有3个值。而且arr1有一个0的值,所以如果在arr2上加入一个0的值,是否输出的值就一致了呢。
结果如下:
出现乱码,原因是编程在循环时没有找到结束的语句,而出现的随机值。
引出了字符串的结束标志“0或者\0”,在计算字符串长度的时候\0是结束标志,不算作字符串的内容,’\0’的值为0。
计算字符串的长度
使用strlen函数。
#include <stdio.h>
#include <string.h>
int main()
{
char arr1[] = "abc";
char arr2[] = {'a','b','c'};
printf("%d\n",strlen(arr1));
printf("%d\n",strlen(arr2));
return 0;
}
输出的值如下:
15为随机值。
!!!!注意,在使用strlen函数使,要引用string头文件。
即在程序的开头加入#include <string.h>
2、转义字符
转义字符——转变原来的意思。
举例:
第一种:
int main()
{
printf("abcn")
return 0;
}
打印出来的值为:
第二种:
int main()
{
printf("abc\n")
return 0;
输出的值为:
此时n的意思已经被改变了,n是普通的字符n,而\n的意思是换行。
比较常见的转义字符:
转义字符占一个字符。
求出 c:\text\32\test.c 的字符数是多少?
答案是13. \32算一个字符。\32是2个八进制数字,32作为8进制代表的那个十进制数字,作为ASCII码值,对应的字符。
八进制32——>十进制26——>作为ASCII码值代表的字符。
3、注释
注释有两种风格。
C语言的注释风格/* XXXXXX */
缺陷:不能嵌套注释
(无法将全部函数注释)
C++语言的注释风格//XXXXX (推荐)
计算机知识/代码知识(零碎)
1,数据在计算机上存储的时候是二进制。#¥!是如何转换成二进制存储在计算机里的呢?
将每一个值编一个号,这个号对应着一个值,这种编码方式为ASCII 编码。值为ASCII 码值
2,输入函数scanf是C语言提供的,scanf_s是VS编译器提供的,不具备的跨平台性/可移植性。尽量不使用编译器自带的语言。
3,使错误失效的代码。放在编程的第一行#define _CRT_SECURE_NO_WARNINGS 1 。
找到C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcprojectitems下的newc++file,用记事本打开,加入#define _CRT_SECURE_NO_WARNINGS ,保存即可。若不允许保存,右键文件–属性–安全–编辑,所有权限都打开,即可保存。
感想:课程内容虽然不多,优点杂乱。但是写下来还是花了蛮多时间的。