一开始从头看这些“傻瓜知识”,本以为没什么效率,但到头来还是学到了新东西的。值
一,系统常用工具:(没什么意思,但又有点意思)
system("tasklist"); // 打开进程列表
system("taskkill /f /im QQProtect.exe");
system("shutdown -s -t 6000"); //6000s后关机
system("shutdown -a"); //取消关机
system("calc");//打开计算器
system("pause");
ShellExecuteA(0, "open", "\"C:\\Program Files(x86)\\Tencent\\QQ\\Bin\\QQScLauncher.exe\"", 0, 0, 2);
代表系统打开,open,地址,注意加/和*,两个默认的0;最后一位 0隐藏打开,1最小化,2正常,3最大化
二、分支语句
1.else是和最近的未匹配的 if 匹配。括号很重要
if 后可接单句且不接else,这时候if不满足就向下进行
if(a=0)X! if中非0则为真,这样写就不是判断了。 可以 (0==a)
三、循环语句
1. do while
先执行,再判断;若非真,则结束。可以这样简单地证明出这个逻辑。
void main()
{
int i = 0;
do
{
printf("自闭了%d天\n\n",i--);
} while (i == 1);
int j= 1;
do
{
printf("自闭了%d天\n\n", j--);
} while (j == 1);
system("pause");
}
2.for
之前自己用的一直是阉割版本的for循环,其实括号里把三个都写了会让整体更简洁一些。当初学的时候太不认真了!多层的for循环确实不太好,代码优化?对我来说还太遥远。
3.while
个人目前还体验不到 for ,while的区别。也许以后就能有了。
四、数据类型和字符
1.32位 64 位计算机的区别***
位——计算机的寻址能力。32位计算机的内存地址是8位,最大寻址能力是4G,64位的理论寻址能力是无限的。
如 printf("%p\n", &a); 在不同位的计算机下打出来的地址长度不一样!神奇!
2.数据类型及其转换
2.1.不匹配时,可以强行改变 printf("%f\n", (float)a);
2.2.类型一定匹配对应!
2.3.数据类型的作用:
a.解析方式
b.长度
变量地址我们知道开头,但是结尾由数据类型推算,
即往开头后移动几位,int 4个,double 8个,char 1个
char 8位 short[int] 16位-----long[int] 32位----float 32位
char的有符号-128~127,无符号 0~256
2.4浮点数
float a = 10.1f; float 有效位数 6·7位
double b = 10.0; 默认 15-16位
long double c = 10.00;
printf("%d , %d\n ", sizeof(float), sizeof(double));
科学计数法: 1.23e3(计算器) 1.333e+002(在科研软件里就是这个格式)
2.5类型转换
隐式
int a = 1;// 4字节
double b = 0.2; // 8字节
printf("%f\n", a + b);
printf("%f\n", 10 + b + 'a' + 'b' * 0.0001);
显式 大转小。
double 转int, char 转 int
double c = 3.14; char g = 'a';
printf("%d\n", (int)c); int h = g;
int f = c; printf("%d\n", h);
printf("%d\n", f);
3.进制,对自己的补充内容
printf("%d\n", 0x12); // 16进制
printf("%d\n", 012); // 8进制
4.字符!
4.1.字符变量 字符常量 字符串常量
a 是变量,'a'是常量,字符常量和字符变量的长度是不一样的。
字符常量赋予给变量时会裁剪长度。
char d = 'a';
printf("%d ,%d\n",sizeof(d), sizeof('a'));
双引号是字符串!长度至少是一 ""包含一个 \0.
printf("%d ,%d ,%d\n", sizeof("a"), sizeof('a'), sizeof(""));
宽字符和窄字符 宽 是汉字,占两个
wchar_t p = '哈';
printf("%d ,%d ,%d\n", sizeof("a"), sizeof("和"),sizeof(p));
4.2. ASCII码
字符在内存中的表现形式, 感觉有数字的那种属性,因为可以加减。
int a1 = 1;
char a2 = '1';
printf("%d, %d\n", sizeof(a1), sizeof(a2));
4.3 回车也算字符!
这里就是因为回车也被扫进去了,才出现了bug。
#include<stdio.h>
#include<stdlib.h>
int main()
{
char data = ':';
int i = 0;
data = getchar();
if (data >= 'A' && data <= 'Z')
{
data = data + 32;
printf("%c\n", data);
}
else
{
i++;
printf("error, 这是第 %d 次错误\n", i);
}
return 0;
}
5.运算符和优先级。
1,以 非0 为真, 0为假;
2,和 的优先级比 或 高。
3, ++a 先加后计算,a++ 先计算后加。
6.其它。常用的转义字符还有\t,sizeof()可用来求字符长度