使用输入、输出语句时要引入头文件
#include <stdio.h> --standard input/output
程序从main()函数(主函数,程序的入口)开始运行
int main(){
return 0;
}
变量的命名规则
- 有意义
- 名字必须由字母、数字、下划线组成;不能有特殊字符同时不能以数字开头
- 变量名不能是关键字名
转义字符部分摘要:
- \ddd :d d d表⽰1~3个⼋进制的数字。如:\130表⽰字符X。8进制转义序列拥有三个⼋进制位的⻓度限制,但若提前遇到不是合法⼋进制位的字符,则在⾸个这种字符处终⽌。
- \xdd :d d表⽰2个⼗六进制数字。如:\x30表⽰字符0。16进制转义序列⽆⻓度限制,并在⾸个不是合法⼗六进制位的字符处终⽌。
- \0 :null字符,代表没有内容, \0 就是 \ddd 这类转义字符的⼀种,⽤于字符串的结束标志,其ASCII码值是0。
- 一个例子:
printf("%d\n",strlen("c:**\t**est**\62**8**\t**est.c")) //14
注意:
- \t 为转义字符,长度为1,使用后屏幕上展示效果为按了tab键的效果
- \62为 \ddd格式但只有两位因为例子中的8超出了8进制的表示范围0-7
- 转义字符算一个字符
数组的注意事项:
//1.C99标准之前数组的大小需要用常量或者常量表达式来指定
int a = 10;
int arr[a];//会报错
int arr[10];
int arr[4+6];
//2.c99标准之后数组的大小支持变长数组,允许数组的大小是变量,但是这种指定的方式数组是不能初始化的
int a = 10;
int arr[a];//这样可以
int arr[a] = {0};//会报错
//3.char形数组用字符串初始化需要记得留一个"\0"的位置否则可能发生越界
char arr[10] = "hello bit"//共9个字符,加上隐含的"\0"正好是10个字符
char arr[10] = "hello bita" //下图展示了当未留下"\0"的位置发生越界的情况
printf("%zu\n", strlen(arr));
printf("%s", arr);
数组与strlen()的结合使用:
char arr1[] = {'b','i','t'};//与char arr1[3] = {'b','i','t'};表示含义相同
printf("%d\n",strlen(arr1))//完全初始化,结果为随机值,strlen数长度时需要找到"\0"才会停止
char arr2[4] = {'b','i','t'};//不完全初始化,剩余部分默认初始化为0(数字0),而“\0”的ASCII码为0,所以长度为3
printf("%d\n",strlen(arr2))//
单目操作符之sizeof
// sizeof--单目操作符,单位是字节
int a = 10;
printf("%d\n", sizeof(a)); // 4
printf("%d\n", sizeof a); // 4,可以看出对于单目操作符来说,sizeof 变量 可以去掉()
printf("%d\n", sizeof(int)); // 4
// printf("%d\n", sizeof int);//但是对于关键字不能去掉()
int arr[10] = {0};
printf("%d\n", sizeof(arr)); // 40,整个数组的大小,单位是字节
int b = 0;
printf("%d\n", sizeof(arr[b])); // 4,使用数组的元素时,[]中可以使用变量
printf("%d\n", sizeof(arr) / sizeof(arr[0])); // 10,可以算数组的长度
逗号表达式
- 逗号表达式是用逗号隔开的一串表达式
- 逗号表达式的特点是:从左向右依次计算,整个表达式的结果是最后一个表达式的结果
int a = 10;
int b = 20;
int c = 0;
// c = 8 a = 28 b = 36
int d = (c = a - 2, a = b + c, b = c + a);
printf("%d\n", d); // 36
return 0;