C语言摘要

我是先学也是主要学的Java,目前需要学习c语言应对二级考试。以下记录c语言中的重点和与Java的区别。

1.C程序是先由源文件.c经编译生成目标文件.obj,然后经过连接生成可执行文件.exe。

2.标识符的命名规则:

  • 只能由字母数字或下划线组成
  • 第一个字母必须是字母或下划线,不能是数字

3.数据类型

char  char a = 'a'; 

short  short b = 12;

int  int c = 128;

long  long d = 1120;

float  float e = 3.2;

double  double f = 3.14;

八进制整型:以数字0开头,基本数字范围0-7

扫描二维码关注公众号,回复: 5616266 查看本文章

八进制转义字符:\ddd,1~3位八进制数表示所表示的一个ASCII字符

十六进制整型:以数字0和x开头,基本数字范围是0·9、A~F

十六进制字符转义:\xhh,1~2位十六进制所代表的一个ASCII字符

指数形式:e前必须有数字,e后必须为整数

字母与字符的转换

4.运算符和表达式

  • 算术运算符:+、-、*、/、%
  • 关系运算符:>、>=、==、!=、<、<=
  • 位运算符:>>、<<、~、&、|、^
  • 逻辑运算符:!、||、&&
  • 条件运算符:?=
  • 指针运算符:&、*
  • 赋值运算符:=
  • 逗号运算符:,
  • 字节运算符:sizeof
  • 强制运算符:(类型名)(表达式)

%是取余运算符,两端必须是整数,13%5的结果是2

/是除法运算符,两个整型相除,结果为整型,即12/5的结果为2;如果两个浮点数相除,结果为浮点数,12.0/5.0,结果为2.4

自加、自减运算符:++在前,先运算后取值;++在后,先取值后运算。--同理。

int a=5;

int b=a++;

int c=++a;

int d=a;

结果为:a=7,b=5,c=7,d=7

  • 按位与&:若两个相应的二进制位都为1,则该位的结果为1,否则为0
  • 按位或|:两个相应的二进制位中只要有一个为1,则该位的结果为1,否则为0
  • 按位异或^:若两个二进制位相同,则结果为0,不同则为1
  • 按位求反~:即0变1,1变0
  • 左移<<:将一个数的二进制位全部左移若干位,低位补0
  • 右移>>:将一个数的二进制位全部右移若干位,原来是0就补0,是1就补1

5.输入输出

printf(格式控制,输出表列);

scanf(格式控制,地址表列);

6.选择

if(){}

switch(){}

7.循环结构

while与do{}while();

for(){}

8.数组

一维数组与二维数组

9.字符串

10.函数

11.指针

12.预处理

13.结构体和共用体

14.链表

15.文件

函数

在c语言中,自己编写的函数最好定义在main函数前面,否则需要在main函数前定义需要的函数。

预处理

指针

  指针是一种数据类型,专门用于存放数据的内存地址。定义格式:

数据类型  *指针变量名 = 初值;

  数据类型不是指针变量中存放的数据类型,而是它将要指向的变量或数组的数据类型。也就是说如果定义成int型数据的指针变量,将来只能用来指向int型的其他变量或数组。

int a = 5;
int *p = &a;
float f1,f[10];
float *p1 = &f1;
float *p2 = f;

  先定义了整型变量a,然后定义一个指向整型变量的指针变量p,并赋初值为事先定义的变量a的地址。

  变量p2中存储着f数组的首地址。

  指针变量中只能存放地址。

1.*是取值符,&是取地址符号。p表示一个变量a的地址,a表示一个变量。*p与a是等价的,p与&a也是等价的。

2.指向变量的地址需要在变量名前加取地址符&,而指向数组的地址直接用数组名,数组名表示数组的第一个值的地址,即f==&f[0]。

3.p+i和f+i表示f[i]的地址。

 *(p+i)和*(f+i)表示f[i]的值。

 *(p+i)与p[i]同样等价

4.用数组名作为函数参数,表示整个数组

average(score);//传递数组参数
printf("%f\n",aver);//输出数组参数

用数组做参数时,可以在函数中改变数组的值

5.用数组元素作参数,与一般的变量无区别

6.

int *x, *y, *i, *j, a = {1,2,3};
y = a;//将数组a的首地址赋给指针变量y
x = y;//将y的值也就是a的地址赋给指针变量x
j = a +1;
*i = *j;//将x的值也就是2赋值给i

7.字符串与指针

char *p = "abcd";
//判断p指针所指向的数组中的元素是否为字符串结束标记
while(*p!='\0'){}

结构体

定义结构的一般形式:

struct 结构名{
  成员表列
};
//实例1
struct student{
int num;
char name[20];
char sex;
double score;
};
struct student boy1,boy2;

//实例2
#define STU struct student
STU{
int num;
char name[20];
char sex;
double score;
};
Stu boy1,boy2;

//实例3
struct student{
int num;
char name[20];
char sex;
double score;
}boy1,boy2;

//实例4
struct{
int nm;
char name[20];
char sex;
double score;
}boy1,boy2;

//实例5
struct date{
int month;
int day;
int year;
};
struct{
int num;
char name[20];
struct date birthday;
float score;
}boy1,boy2;

枚举类型

定义一般形式

enum 枚举名{枚举值表};

//实例
enum weekday
{sun,mon,tue,wed,thu,fri,sat}a,b,c;
a=sun;//等价于a=(enum weekday)2;
b=mon;
c=tue;

猜你喜欢

转载自www.cnblogs.com/heibaimao123/p/8545435.html
今日推荐