1.修正 VS 下"scanf"的警告
VS-2010中调用scanf,会出现以下警告:
1>e:\c\projects\test\test\test.c(6): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> d:\vs\vc\include\stdio.h(304) : 参见“scanf”的声明
scanf是C语言提供的,scanf_s不是标准C语言提供的,是VS编译器提供的。(不具有跨平台性/可移植性)
找到VS-2010软件的安装路径 —> 文件夹下的 VC —> vcprojectitems —> newc++file.cpp (记事本打开)—> 记事本写入 #define _CRT_SECURE_NO_WARNINGS 1
2.常量
(1)字面常量
例如:1 2 3 4 5.......,这些熟知的数字。
(2)const修饰的常变量
变量具有常属性,但实质是变量,不能当常量使用。
常属性:const修饰后的变量被赋值后,不能再被重新赋值。
实质是变量,例:创建数组大小时,数组的大小和位置已经确定了,需要一个常量去指定数组的大小,所以就不能用const修饰的变量去定义数组的大小。
常变量实质是一个变量
(3)#define定义的标识符常量
#define a 10
a是个常量,a == 10.
(4)枚举常量 enum
enum Sex //枚举性别
{
male, //0 男
female, //1 女
secret //2 秘密
}
enum Sex a = male;
(enum Sex相当于变量的数据类型)
3.字符串
字符串:由双引号" "引起来的一串字符
'' "(空字符串)
字符串的结束标志是 \0 转义字符,在计算字符串长度的时候,\0是结束标志,不算做字符串内容,不算做字符串的长度,但占内存大小。
strlen 计算字符串长度大小 <string.h>
(strlen 实质是得到一个起始位置(数组名),从这个位置出发,一直到 \0 结束走过的元素数。)
sizeof 计算变量或类型所占内存大小
字符串数组,无结束标志,显示内容为乱码,计算字符串长度为随机值。
字符可以用相对应的ASCII码表示
(1)三种字符串数组
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
//三种字符串数组
int main ()
{char arr1 [] = "abc";char arr2 [] = {'a','b','c',0}; //{'a','b','c','\0'}char arr3 [] = {'a','b','c'};printf("这三种字符串为:\n");printf("%s\n",arr1);printf("%s\n",arr2);printf("%s\n",arr3);printf("\n");printf("这三种字符串的长度为:\n");printf("%d\n",strlen(arr1));printf("%d\n",strlen(arr2));printf("%d\n",strlen(arr3));printf("\n");printf("这三种字符串所占内存大小为:\n");printf("%d\n",sizeof(arr1));printf("%d\n",sizeof(arr2));printf("%d\n",sizeof(arr3));return 0;
}
(2)程序运行时的监视功能
程序调试过程中(F10/F11),调试 -> 窗口 -> 监视
选择一个监视窗口,输入变量名,进行调试,观察变量变化情况。
(3)转义字符
转义字符:转变原本的意思
\t 水平制表符
"\""" '\''
\ddd 表示1~3个八进制数字
\xdd 表示2个十六进制数字
两种转义字符串数组:
\32(8) -> 26(10) -> " -> "(运行结果窗口里面设置,点阵字体,才能看到"->")
' \0' -> 0
ASCII码:'0' ->48
'A' -> 65
'a' ->97
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
//两种转义字符串数组
int main ()
{ char arr1 [] = "c:\test\32\test.c";char arr2 [] = "c:\\test\\32\\test.c";printf("arr1数组:\n");printf("%s",arr1);printf("\n");printf("arr2数组:\n");printf("%s",arr2);printf("\n");printf("arr1数组长度:\n");printf("%d",strlen(arr1));printf("\n");printf("arr2数组长度:\n");printf("%d",strlen(arr2));printf("\n");printf("arr1数组大小:\n");printf("%d",sizeof(arr1));printf("\n");printf("arr2数组大小:\n");printf("%d",sizeof(arr2));printf("\n");return 0;
}
4.注释
单/多行:/* */( /*之后只要遇到*/就结束,不能嵌套使用。)
单行://
5.分支(选择)语句
if分支:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
//if分支
int main ()
{ int a = 0;printf("开始学习C语言:");printf("是否坚持?1:0\n");scanf("%d",&a);if(1 == a){printf("优秀滴\n");}else{printf("滚去学习\n");}return 0;
}
6.循环语句
while循环:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
//while循环
int main ()
{ int i = 0;while(i<=9999999999999999999)//19个9{printf("敲了%d行代码\n",i);i++;}if(i>9999999999999999999){printf("牛逼\n");}return 0;
}
7.函数
Add函数:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
//函数
int Add (int x,int y)
{int z = x+y;return z;
}
int main ()
{ int a = 0;int b = 0;int sum = 0;printf("a=");scanf("%d",&a);printf("b=");scanf("%d",&b);sum = Add(a,b);printf("sum=%d\n",sum);return 0;
}
8.数组
数组:一组相同类型元素的集合
下标从0开始,用下标访问元素,可用变量循环加的方式访问数组各个元素。
int
数组元素的数据类型 char arr[10]
float
....
数组元素个数 = 数组大小 / 某一个元素大小
数组元素个数可根据列举元素来实现,数组初始化,可以不指定大小。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
//数组
int main ()
{ int i = 0;int j = 0;int arr [] = {1,2,3,4,5,6,7,8,9,10};while(i<=9){printf("%d\n",arr[i]);i++;}j = sizeof(arr)/sizeof(arr[0]);printf("该数组个数为:%d\n",j);return 0;
}