概述
- 打印字符
char ch=‘A'; printf("%cn",ch);
-
%d: 打印整形上的十进制数据
-
%p: 以地址的形式打印
-
%X: 打印16进制数字
-
打印双精度浮点数
double d=3.14; printf("%lfn,d);//注意:lf
-
计算机中的单位:bit--比特位;byte--字节;kb; mb--兆b; gb; tb; pb.
一个字节8个比特位 1kb=1024byte 1mb=1024kb...
//32位机器 printf("%dn",sizeof(char));//1 printf("%dn",sizeof(short));//2 printf("%dn",sizeof(int));//4 printf("%dn",sizeof(long));//4 printf("%dn",sizeof(long long));//8 printf("%dn",sizeof(float));//4 printf("%dn",sizeof(double));//8
-
short age=20; //含义:向内存申请2个字节用来存放20
-
变量:
全局变量:定义在代码块{....}之外的变量,在哪都可见
局部变量:定义在代码块{....}之内的变量,只能在自己所在{...}中可见
注:
当局部变量和全局变量同名时,局部变量优先;
局部变量和全局变量建议名字不要相同,容易产生误会--bug。
C语言规定:变量要定义在当前代码块的最前面;
定义的变量仅可在自己的代码块内使用,当然也包括自己所在代码块中的嵌套的代码块,如{ int a=10; { ...//这里面也可使用变量a } ...//可使用变量a }
-
交换两个整形变量,但不能引入第三个变量
//1.这种算法会出现溢出情况(不建议) int a=3; int b=5; a=a+b;//8 b=a-b;//3 a=a-b;//5 //2.按二进制位异或(完美算法) int a=3;//011 int b=5;//101 a=a^b;//110 b=a^b;//011 ->3 a=a^b;//101 ->5
-
找出只出现一次的数
题面:给定一个非空数组,除了某个元素只出现一次以外,其余每个元素均出现两次,找出 来那个只出现一次的那个元素
样例:int arr[ ]={1,2,3,4,5,1,2,3,4};该数组中只有5出现了一次,其他均出现两次
//法一:效率慢 int arr[]={1,2,3,4,5,1,2,3,4}; int i=0; int sz=sizeof(arr)/sizeof(arr[0]); for(i=0;i<sz;i++) { //统计arr[i]在数组里面出现的次数 int count=0; int j=0; for(j=0;j<sz;j++) { if(arr[i]==arr[j]; count++; } if(count==1) { printf("单身狗:%dn,arr[i]); break; } } //法二:巧解,用按位异或。a^a=0;0^a=a int i = 0; int ret = 0; int sz = sizeof(arr) / sizeof(arr[0]); for (i = 0; i < sz; i++) ret = ret ^ arr[i]; printf("%dn", ret);
-
写个关机程序
运行程序,你的电脑在1分钟后关机,如果输入我是猪,就取消关机
#include<stdio.h> #include<limits.h> #include<string.h> int main() { char input[20] = { 0 }; system("shutdown -s -t 60"); again: printf("请注意你的电脑将在一分钟内关机,如果输入:我是猪,就取消关机n"); scanf("%s", input); if (strcmp(input, "我是猪") == 0) system("shutdown -a"); else goto again; }
-
常量
字面常量:如常数5,4
const 修饰的常变量
#define定义的标识符常量:如#define MAX 10
枚举常量enum -
字符串
char arr1[] = "abc";//末尾隐藏一个'