c
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
一般实例:
#include <stdio.h>
Void main()
{
Int a,b,num;
A=
B=
Num = a+b;
Printf("sum = %d/n",num)
}
变量类型:
Int short long unsigned int unsigned short unsigned long
C 运算符 优先级列表:
Precedence | Operator | Description | Example | Associativity |
1 | () | Grouping operator | (a + b) / 4; | left to right |
2 | ! | Logical negation | if( !done ) ... | right to left |
3 | ->* | Member pointer selector | ptr->*var = 24; | left to right |
4 | * | Multiplication | int i = 2 * 4; | left to right |
5 | + | Addition | int i = 2 + 3; | left to right |
6 | << | Bitwise shift left | int flags = 33 << 1; | left to right |
7 | < | Comparison less-than | if( i < 42 ) ... | left to right |
8 | == | Comparison equal-to | if( i == 42 ) ... | left to right |
9 | & | Bitwise AND | flags = flags & 42; | left to right |
10 | ^ | Bitwise exclusive OR | flags = flags ^ 42; | left to right |
11 | | | Bitwise inclusive (normal) OR | flags = flags | 42; | left to right |
12 | && | Logical AND | if( conditionA && conditionB ) ... | left to right |
13 | || | Logical OR | if( conditionA || conditionB ) ... | left to right |
14 | ? : | Ternary conditional (if-then-else) | int i = (a > b) ? a : b; | right to left |
15 | = | Assignment operator | int a = b; | right to left |
16 | , | Sequential evaluation operator | for( i = 0, j = 0; i < 10; i++, j++ ) ... | left to right |
注意:
整型数据的溢出
实例变量不可以进行求余运算
Float 型变量只可以接收7位有效数字
字符数据与整型数据都可以互相赋值 [W1]
字符串与字符 [W2]
求字节运算符 sixeof
I++ 先使用 i 的值再执行 i=i+1
++i 先使用 i=i+1 再使用i 的值
-i++ 相当于 -(i++) 自右向左
(-i)++ 不合法, 表达式不能进行自加自减运算
a = ( a = 3, 6*3 ); / /x 的值等于18
c = getchat();
Putchar(getchar());
Int a = -1; / /-1 在内存单元中的存放形式(以补码形式存放)如下
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
......
Scanf("2d 2d", &a,&b); //输入1234,系统会自动将12赋给A,将34赋给B
a = b >c //相当于 a = ( b>c )
算术运算术 |
关系运算符 |
.... |
赋值运算符 |
a = =b >c // 相当于 A = = ( b >c )
for( ; ; ) 相当于 while(1)
a[2][3] 不可以写成 a[2,3]
二维数组定义时第一维的长度可以省,但第二维长度不能省 [W3]
字符串比较 [W4]
Strlen() 测长不包括实际 '/0' 在内
指针:
Int *point_1;
Int a;
a = 100;
point_1 = &a;
printf("%d",*point_1);
p[i] 与 *(p+1) 等价
int *p = &a[0] 等效于 int *p; p = &a[0]; 也可以写成 int *p = a;
*p = 1; //将1赋给p当前所指向的数组元素
int a[10];
int *p,i;
.....
for(p = a;p < (a+10)):p++ )
printf("%d",*p)
int *p,i,a[10]; //p 代表一个地址,应该相当于 &(*p)
p = a; // 指向其首地址
for( i = 0; i < 10; i ++)
scanf("%d",p++);
.......
二维数组指针:
a[1] + 2 和 *(a+1) +2 的值都是 &a[1][2]
*(a+i) 和 a[i] 是等价的
a[1],*(a+1) // 1行0列元素 a[1][0] 的地址
输出 a 数组的100个元素: [W5]
输出二维数组元素的值:
int a[3][4] = {1,,,,};
int *p;
for(p = a[0];p < a[0]+12; p++)
{
if( ( p -a[0] )/4 == 0)) printf("/n");
printf("%4d",*p);
} [W6]
a 指向一维数组首地址
a[0] 指向二维数组首地址
a+1 是序号为1的行的首地址
* (a+1) 或 a[1] 或 a[1]+0 都是指向1行0列元素
表示形式 | 含义 | 地址 |
a | 二维数组名,指向一维数组 a[0], 即0行首地址 | 2000 |
a[0] , *(a+0) | 0 行 0列元素地址 | 2000 |
a+1 , &a[1] | 1行首地址 | 2008 |
a[1] , *(a+1) | 1 行0列元素, a[1][0] 的地址 | 2008 |
a[1]+2 ,*(a+1)+·2 , &a[1][2] | 1行2列 a[1][2] 的地址 | 2012 |
*(a[1]+2) , *(*(a+1)+·2) , a[1][2] | 1 行2列 a[1][2]的值 | 值为13 |
结构体: [W7]
exit(0); // 关闭所有文件,终止正在执行的程序
防止溢出, int 最大只支持23565 [W8]
pj = (float)(j*100/k)/100; //k为部数,算术平均数(保留到2位小数)
c[i]/100 // 千位数
c[i]%1000/100 //百 位数
c[i]%100/100 //十 位数
c[i]%10 //个 位数
如果用偶数或者奇数:
i++;
i = i+2; // 把步长设为2
宏定义 #define
auto变量 自动释放存储空间 一般是省略了
register 寄存器变量,放到寄存器中
只有局部自动变量和形式参数可以作为寄存器变量,其他(如全局变量)不行。
一个计算机系统中的寄存器数目是有限的
extern 外部变量
C++
cin>> 输入
cout<< 输出
Int i;
Char c;
I = 'a';
C = 97;
C = 'a' ( √ )
C = "a" (×) "a" 是字符串,实际上是 'a' 和 '/0'
Int a[][3] = {{0,0,3},{},{0,10}} (与JAVA相反)
If(str1 > str2) (×)
If(strcmp(str1,str2)>0) ( √ )
p = a;
while(p < a+100) printf("%d",*p++)
运行结果如下:
10 3 5 7
9 11 13 15
17 19 21 23
//指针 p到佐a[0][4] 会自动转到下一列的 a[1][0]
p - > num , 等效于 p.num
long int num;
num = 89101;
printf("%d",num);
C++中new和delete是对内存分配的运算符,取代了C中的malloc和free。
标准C++中的字符串类取代了C标准C函数库头文件中的字符数组处理函数。
C++中用来做控制态输入输出的iostream类库替代了标准C中的stdio函数库。
C++中的try/catch/throw异常处理机制取代了标准C中的setjmp()和longjmp()函数。
编译:
G++
Gcc 1.cpp -lstdc++ 默认不会搜索libstdc++
增加了bool,wchar_t,
增加强制转换语法 int I = int(m)
C++中main()默认为int,而c中默认为void
Cout<<<<’’ //输出十进制数
<<<<’’ //输出八进制数
无名参数
Int fun(int x , int)
{}
默认参数
Void show(int=1,float=2.3,long = 6)
Int main()
{
show() ;
show(2) ;
}
函数重载
参数格式不同:
Void a(int , int)
main()..
Void a(int q , int w) ...
变量作用域
C++允许变量定义在任何位置,只要在是使用它们之前就可以,而C中必须在函数开头部分,
而且c++允许重复定义变量,C不能
C++中仍然支持使用malloc()和free()来分配和释放内存,同时增加了bew 和delete来管理内存
Int *array = new int[size] ;
..
Delete []array ;
引用型变量
Int a ; int &b = a ;
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |