基本数据格式 char int float double void
修饰 signed,unsigned long short
字符常量和int型常量存储在内存的均为数字
A 65
a 97
表达式的最后结果总是 0 或者 1’
位操作 & | ^(异或,当且只有一个1,结果为1)
~ NOT >> <<
(a>b)?a:b;
逗号操作符
(x=3,y=4,x+y) 这个表达是的结果为7,最右边的那个值
stdio.h 的函数
float a = 652.225654
scanf(%d,&a);
printf(“%6.3f”,&a); 总共输出6位,其中小数点后3位
输出 c字符 o八进制 d十进制 x16进制 u无符号 s字符串 f浮点 e科学技术法 g:f/e 较短的输出
单个字符输入输出
getchar
putchar
C 语言函数的定义可以是这样的
int getMax(a,b)
int a,b;
{
}
可是一直以来我一直以为只有酱紫的
int getMax(int a, int b)
{
}
:( 不认真害死人啊……
auto 是动态存储变量,调用时分配存储空间,函数结束时释放存储空间
变量默认是auto 关键字修饰的
寄存器变量 register, 保存在CPU 寄存器中,无需存入内存
静态存储变量,在编译时分配存储空间的变量,顶叶和初始化均在编译时进行,调用函数结束,静态存储变量不消失且保留原值 static修饰
#define 使用 \ 来换行
#error 停止编译,主要用于调试
#include 使编译程序将另一个源文件嵌入带有#include的源文件
#ifdef
#else
#endif
#undef 取消前面已经定义过的宏命名
#line 100 指定当前行计数器为100
#pragma 实现时定义的命令,允许向编译程序传送各种指令
字符串操作
strcpy(s1,s2)
strcat(s1,s2)
strlen(s1)
strcmp(s1,s2)
指针
指针变量: 和实体变量一样,也是一个变量,这个变量保存了一个指针。
如果是数组指针变量,则指针变量保存的是数组在内存中的地址
* :引用字符。 如 *p 表示获取 p 这个指针指向的值
& :取地址字符。 如 &a 表示获取 a 这个变量在内存中的地址
在一维数组
int a[],*ptr;
ptr=a;
ptr,a,&a[0] 取地址等效
ptr+n,a+n, &a[n] 取地址等效
同理 *(ptr+n), *(a+n), a[n] 取值等效
另 *(ptr+n) 可用 prt[n] 表示
二维数组中
int a[3][4],*p;
p= a;
a,&a[0][0],p,&a[0] 取地址等效
&a[2],&a[2][0],
字符串数组中
char str[20];
*p = str;
gets(str);l
print(“%s\n”,str);
print(“%s\n”,p)
需要注意,这里str 在gets 方法中自动加了\0,可以使用%s来输出
但是如果 str 这个数组不是以\0结尾,使用%s输出将会出错