本文共 3164 字,大约阅读时间需要 10 分钟。
1.**int (p)[4]表示一个指针指向一个四位的数组 int p[4]表示一个指针数组
int *p[4]; //定义一个指针数组,该数组中每个元素是一个指针, int (*p)[4]; //定义一个数组指针,该指针指向含4个int型元素的一维数组, 区分int *p[n]; 和int (*p)[n]; 就要看运算符的优先级了。 int p[n];中,运算符[ ]优先级高,先与p结合成为一个数组,再由int说明这是一个整型指针数组。 int (*p)[n]; 中( )优先级高,首先说明p是一个指针,指向一个整型的一维数组。 2、int(*p)[4];------ptr为指向含4个元素的一维整形数组的指针变量(是指针)
首先要有一个可待的地址才能赋值
牢牢记住*p就相当于一个数
链表也是一种线性数据结构,但它最大的优势是可以动态的调整大小。这样,我们再也不用担心应该分配多少空间了。
链表在日常开发中通常通过数据结构和指针的方式实现,其中包含一个本数据结构的next指针,用于指向下一个元素,这样指下去,就形成了一个单向链表。
二维赋初值的方法:char str[][10]几行可以不标注但是每行的限制条件需要有限制
下面讲一下switch语句(大多数同学不太懂格式和写法)
switch(表达式){ case 值1://1.用:2.case后面的值是整型和字符型 语句体1; break; case 值2: 语句体2; break; default://所有的值都不匹配的时候,就执行语句体default;(相当于 else) 语句体n+1; break; }
一般设错的话就是case的问题!!!
不能引用整个数组,只能一个个的使用下标变量
(帮助大家进一步理解)
总之字符串的结束语就是\01.一种就是需要补充字符的题,问你多少字节(union 和struct)
#includeint main( ){ union U{ char st[4] ;int i ;long l ;} ;struct A{ int c ;union U u ;} a ;printf( "%d\n" , sizeof( struct A ) ) ;return 0 ;}
long 字节为4 union中取最大
struct 字节要补齐,补齐完再相加结构体本身不占用空间,相当于int 类型的变量,而结构的里面相当于变量里面的 a,a是占用空间的。
考定义
注意
- 三种定义形式,第三种形式可以省略类型名,结构体变量名是自己最后定义的东西 2.不能对本身递归 3.定义结构体类型,只是说明了该类型的组成情况,并没有给它分配存储空间,就像系统不为int类型本身分配空间一样。只有当定义属于结构体类型的变量时,系统才会分配存储空间给该变量
第1~4行并没有分配存储空间,当执行到第6行时,系统才会分配存储空间给stu变量。 4.结构体变量占用的内存空间是其成员所占内存之和
(看不懂得可以打开连接看看爽爽子也只能做到信息整合)
这篇博客写得挺好得位运算知识点基本涵盖这个玩意我感觉记住就行,考试前看一看就可
标识符,关键字
int a 中int是关键字 a是标识符(字母,数字,下划线)C语言中常数合法表示
C语言中转义字符格式
![]()
四舍五入:int 下取整,double float是四舍五入
#includeint main( ){ int a = 1, b = 10 ;do{ b -= a ;a++ ;}while( b-- < 0 ) ;printf( "a=%d,b=%d\n" , a , b ) ;return 0 ;}
循环
1.循环()里面只要满足条件就循环 2.do-while要有;#include//预编译
#define数据类型,int float double , 4 4 8
运算符:+ - * / %(取余)
赋值运算:= 复合赋值运算符:+= 自增自减运算符:++ --(作用数据变量)(任何数据类型可以自增自减) 宏定义;不做任何语法检查直接替换 宏替换 p33-p35 数据格式化 p48 %g(自动寻找f e 的格式选取简单的哪一种)不输出无意义的0; putchar getschar(字符)gets(字符串) 选择结构 if if else switch 后面是整形 逻辑运算符;&& || ! A&&B(AB都是1才为1,如果A计算是0第二个表达式不去计算) A||B(前一个表达式为非0,运算下一个) if() 三位运算符 A?B:C(条件运算符) 不同表达式在里面(精确度最大的)p36(靠近食物链顶端的)C中float类型中小数位数为7位,即可精确到小数点后7位,例如0.123456789,在float类型中只能取到0.1234567,后面的两位有效数字损失掉了;double类型中小数位数为15位,可精确到小数点后15位。
1.一个字节可以表示整数最小0,最大255,一个字节等于8个二进制位(2的八次方256)
2.bit(位)最小单位 3.sizeof是关键字不是函数名 4.赋值运算是有方向性的从右边到左边 5.return是保留字,printf scanf是函数,在stdio.h(主调函数,被调函数) 6.宏常量const double x=3.1415,宏替换# define x 3.1415(直接替换不用考虑是什么量) 7.强制转换(int)x/y(转换的东西放在里面) 8.转义字符:‘\565’,’\xhh’ 9.printf输出%o八进制%x 16进制 10.数据结构+算法=程序1.闰年 year%40&&year%100!=0||(year%400==0)
2.fabs()绝对值,pow(x,n)次方,sqrt()开根号。 3.小九九打印 for套for 4.最小公倍数,最大公约数 5.兔子繁衍 6.菱形图案 for套for 7.排序 for套for 8.素数 9.时间的问题(到时间需要给前面加一) 10.求最大值和下标(一般会有值来标注) 题型给到这里pta上有的可以自己找一下转载地址:http://cisuk.baihongyu.com/