自学内容网 自学内容网

二、初识C语言(2)

 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;
}

9.思维导图


原文地址:https://blog.csdn.net/m0_56351488/article/details/143613018

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!