一般实例:

#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
Array access
Member access from a pointer
Member access from an object
Scoping operator
Post-increment
Post-decrement

(a + b) / 4;
array[4] = 2;
ptr->age = 34;
obj.age = 34;
Class::age = 2;
for( i = 0; i < 10; i++ ) ...
for( i = 10; i > 0; i-- ) ...

left to right

2

!
~
++
--
-
+
*
&
(type)
sizeof

Logical negation
Bitwise complement
Pre-increment
Pre-decrement
Unary minus
Unary plus
Dereference
Address of
Cast to a given type
Return size in bytes

if( !done ) ...
flags = ~flags;
for( i = 0; i < 10; ++i ) ...
for( i = 10; i > 0; --i ) ...
int i = -1;
int i = +1;
data = *ptr;
address = &obj;
int i = (int) floatNum;
int size = sizeof(floatNum);

right to left

3

->*
.*

Member pointer selector
Member pointer selector

ptr->*var = 24;
obj.*var = 24;

left to right

4

*
/
%

Multiplication
Division
Modulus

int i = 2 * 4;
float f = 10 / 3;
int rem = 4 % 3;

left to right

5

+
-

Addition
Subtraction

int i = 2 + 3;
int i = 5 - 1;

left to right

6

<<
>>

Bitwise shift left
Bitwise shift right

int flags = 33 << 1;
int flags = 33 >> 1;

left to right

7

<
<=
>
>=

Comparison less-than
Comparison less-than-or-equal-to
Comparison greater-than
Comparison geater-than-or-equal-to

if( i < 42 ) ...
if( i <= 42 ) ...
if( i > 42 ) ...
if( i >= 42 ) ...

left to right

8

==
!=

Comparison equal-to
Comparison not-equal-to

if( i == 42 ) ...
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
Increment and assign
Decrement and assign
Multiply and assign
Divide and assign
Modulo and assign
Bitwise AND and assign
Bitwise exclusive OR and assign
Bitwise inclusive (normal) OR and assign
Bitwise shift left and assign
Bitwise shift right and assign

int a = b;
a += 3;
b -= 4;
a *= 5;
a /= 2;
a %= 3;
flags &= new_flags;
flags ^= new_flags;
flags |= new_flags;
flags <<= 2;
flags >>= 2;

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