第二天浅识c语言
1.常量
(1) 字面常量
#include<stdio.h> int main(){ 3; 4; 5; //字面常量的意思就是能够直接写出的常量的意思,懂得都懂 return 0; }
(2) const修饰的常变量
#include<stdio.h> int main() { int a =10; printf("%d",a); a = 20; printf("%d",a);//这是属于正常变量的范畴 return 0; }
#include<stdio.h> int main() { const int a =10; printf("%d",a); //a = 20; //这里会执行报错,原因是因为"const"已经限定了a的值,a //的值不能再次被改变 //printf("%d",a); return 0; }
#include<stdio.h> int main() { const int a = 10; //经过const修饰后a具有"常属性",不能够对a进行修 //改 int arr[10] = {0}; //const arr[a] = {0};//这里会执行报错,原因是数组中的参数不接受变量 //说明尽管a已经被修饰成常变量,依然是一个变量 return 0; }
(3) define定义的标识符常量
#include<stdio.h> #define num = 10; int main() { int arr[num] = {0};//由于数组的原因,num只能是常量,而这一行代码 //能够正常运行,也说明了"#define"定义的是一个常量 return 0; }
(4) 枚举常量
enum color { red, yellow, blue //枚举的意思就是意思就是列举 } #include<stdio.h> int main(){ enum color x = red;//x为变量 x = blue; //变量可以被改变 //blue = 6; //枚举常量不可以被改变 return 0; }
2.字符串
(1) 关于字符串的解释
#include<stdio.h> int main(){ "10"; "55516"; "你好!" //双引号的内容统称为字符串 return 0; }
(2) 字符串的储存
#include<stdio.h> int main() { char arr1[] = "abc"; char arr2[] = {'a','b','c','\0'};//字符串的储存需要创建数组,以上两种方式 //都可以,"\0"要加上是因为,在arr1中默认加 //上"\0","\0"是储存字符串结束的标志 printf("%s\n",arr1); printf("%s\n",arr2); //%s是打印字符串的转换说明 printf("%d\n",strlen(arr1)); printf("%d\n",strlen(arr2)); //strlen指的是字符串的长度 return 0; }
3.转义字符
#include<stdio.h> int main() { printf("%d\n",32);//"\n"是换行的意思,而不是单纯的输出"\n" char arr[] = {'a','b','c','\0'};//"\0"的意思是结束字符串储存的意思,而不 //是单纯的储存"\0" //转义字符的意思就是转换意思的意思,懂得都懂 return 0; }
#include<stdio.h> int main(){ printf("%d",strlen("c:\text\32\text.c")); //"\t"代表着一个转义字符,因此长度只能算一个,"\32"也代表着3,2 //两个八进制数字,通过转换十进制后通过ascll码变成箭头的符号,因此也 //只能算一个字符 printf("%c",'\x86');//同理,但是是16进制的两个数字8,6 return 0; }
4.if语句
#include<stdio.h> int main() { int input = 0; printf("你要好好学习吗?\n 是/否(1/0):"); scanf("%d",&input); if(input==1){ printf("迎娶白富美!"); }else{ printf("烤红薯"); } return 0; }
5.while循环语句
#include<stdio.h> int main() { int sum = 0; while(sum<20000){ printf("写了一行代码,此代码为第%d行\n",sum); sum++; } printf("迎娶白富美!"); return 0; }
6.函数
#include<stdio.h> int add (int x,int y){//这是自定义函数,"int"是返回值类型,"add"是 //自定义函数名,"()"内的内容是函数参数 int z = 0; z = x + y; return z; } int main(){ int sum = 0; sum = add (4,5); printf("%d",sum); return 0; }
7.数组
#include<stdio.h> int main() { int i = 0; int a = 1; int b = 2; int c = 3; int d = 5; int e = 6; //.......... int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }; printf("%d\n", arr[0]); while (i < 10) { printf("%d ", arr[i]); i++; } return 0; }
#include<stdio.h> #include<string.h> int main() { //探究数组 char arr[20] = { 0 }; //scanf("%s",arr);//因为arr是一个数组名,通常来说:数组名就是一个指针,所以不需要取地址符“&” //arr = 'a';//不能直接对字符串进行赋值 strcpy(arr, "abc");//如果要对字符串进行赋值需要用到strcpy函数,用此函数,还需要调用string.h头文件 //因为该头文件包含了strcpy函数,没有调用头文件会报错。 printf("得到的字符串为:%s",arr); return 0; }
8.算数操作符
#include<stdio.h> int main() { int a = 1; int b = 2; int c = 3; int d = 4; int sum = 0; int reduce = 0; int multiply = 0; int except = 0; int remainder = 0; sum = a + b; reduce = c - b; multiply = b * c; except = d / b; remainder = c % b; printf("%d\n", sum); printf("%d\n", reduce); printf("%d\n", multiply); printf("%d\n", except); printf("%d\n", remainder);
9.移位操作符
移位(>>,<<)操作符,移的是二进制位
例如:int是4个字节,有32位,举个例子:00000000000000000000000000000001--1
向左移一位:
#include<stdio.h> int main() { int a=1; int c = a<<1; printf("%d",c); return 0; }
结果为2 : 00000000000000000000000000000010--2
10.位操作符
“&”“|”“^”位操作符也指的是二进制
#include<stdio.h> int main(){ int a =3; int b =4; int c =0; c = a & b; printf("%d\n",c);------0 //a的二进制为:011; //b的二进制为:100; //a&b为: 000;---有假即为假 c = a | b; printf("%d\n",c);------7 //a|b的二进制为:111;---有真即为真 c = a ^ b; printf("%d\n",c);-------7 //a^b的二进制为:111;---同真同假即为假,异真异假即问真 return 0; }
11.复合赋值符
#include<stdio.h> int main() { //复合赋值符:+=,-=,*=,/=,%=,&=,|=,^= int a = 5; int b = 6; a *= 6;//-- a = a * 6; printf("%d", a); return 0; }
12.单目操作符,双目操作符,三目操作符
#include<stdio.h> int main() { //单目操作符,双目操作符,三目操作符 //a + b;操作符左右有两个数字为双目操作符,只有一个为单目操作符.... int a = 3; int b = 4; int c = 0; int arr[10] = { 0 }; printf("%d\n",!a); printf("%d\n",sizeof(arr));//求数组大小 c = sizeof(arr) / sizeof(arr[0]);//求元素个数 printf("%d\n",c); return 0; }
#include<stdio.h> int main() { int a = 10; int b = 0; int ch[] = { 1,2,3,4,5,6 };//创建一个数组ch,数组元素的类型为int; printf("%d\n", sizeof(a));//输出为4,单位字节 printf("%d\n", sizeof(int));//输出为4,单位字节 printf("%d\n", sizeof a);//输出为4,单位字节 //可以看出size是一个操作符而不是一个函数 //printf("%d",sizeof int );//报错,原因输出类型错误 printf("%d\n", sizeof(ch));//输出为24,单位字节 b = sizeof(ch) / sizeof(ch[0]);//输出结果为6 printf("%d\n",b); return 0; }