目录
一、数组
1.1数组是什么
数组是由相同类型元素构成的集合,可以减少定义的变量数量,提高开发效率
1.2数组的定义
数组的定义语法为 : 数据类型 数组名[] = {};
int array[10] = {1,2,3,4,5,6,7,8,9,10};
方括号[]内表示数组中元素个数,大括号{}内是对数组元素依次进行初始化。方括号内的必须是常量或常量表达式(如2+3),不能是变量(若编译器支持c99以上语法,则可以填写变量,但VS2019不支持)。数组的元素都有各自的下标,下标从0开始
数组指定大小以后就不可以再更改
1.3数组的不完全初始化
数组创建时可以不完全初始化,如
int array[100] = {0, 1, 2};
double arr[10] = {1.2, 2,4};
编译器会将未初始化的元素赋值为0
数组在创建时也可以不指定大小,编译器会根据后面的数据个数确定数组大小
int array[] = {0, 1, 2};
此时数组array的元素个数为3
1.4数组的赋值与遍历
#include<string.h>
int main()
{
int arr[10];
int i = 0;
//数组的依次赋值
for (i = 0; i < 10; i++)
{
scanf("%d", &arr[i]);
}
//数组的遍历打印
for (i = 0; i < 10; i++)
{
printf("%d ", arr[i]);
}
}
此处的for是一种循环语句,句法是 :
for(循环变量初始化;循环进行的条件;循环变量的调整)
{;}
二、字符串与转义字符
2.1、字符串
“Hello World”
像“Hello World”这种,由双引号引起来的字符,叫字符串字面值,也叫字符串,其长度为其中的字符数(包括空格)
由于C语言中没有字符串数据类型,若想定义一个字符串变量,需要用字符数组的方式
char arr1[] = "Hello"; //第一种创建方法
char arr2[] = { 'w','o','r','l','d' }; //第二种创建方法
一个字符串的结束是以\0为标志的(第一种方法创建时,编译器会自动在字符串末尾加上\0),‘\0’是一个转义字符,在计算字符串长度时,'\0'不计入总长度
但若以第二种方式创建,需要用户手动加上字符 ‘\0’,否则使用该字符串时会导致错误,如在用库函数strlen求字符串长度时
#include<stdio.h>
#include<string.h>
int main()
{
char arr1[] = "hello";
char arr2[] = { 'h','e','l','l','o' };
int a = strlen(arr1);
int b = strlen(arr2);
printf("%d\n", a);
printf("%d\n", b);
}
由于字符串arr2没有添加‘\0’作为结束标志,其长度时一个随机值
2.2、转义字符
转义字符是一种以“\”开头的字符,转义字符中的'\'表示它后面的字符已失去它原来的含义,转变成另外的特定含义
如使用\a会使电脑响铃
int main()
{
char arr[] = "\a";
printf("%s", arr);
return 0;
}
运行这段代码,控制台上什么都不会打印,但会电脑的铃声
三、注释
注释主要用于解释某一处难懂的代码的作用,对于一些不需要的代码,也可以进行注释(或删除),注释内容在程序中会被删除掉,不占用空间
//int i = 1;
int a = 2;
C语言的注释风格是/* */,他们中间的内容会全部被注释掉,但这种注释不能嵌套
/*
int i = 2;
int b = 2;
*/
C++的注释风格是用 // ,这种注释是单行注释,但可以嵌套
目前编译器两种风格都支持,推荐使用C++的注释风格