c语言需要注意的细节

1,计算机中的内存都是有编号的
2.char占一个字符,char a[6]占6个字节,char a[5][3]占15个字节
short占2个字符,short b[4]占8个字节
int占4个字符,int c[3]占12个字节
3,字符串
数组的长度包含末尾的结束符,而字符串长度不包含,如:char  str[]="hi",数组长度是3,
共3个元素:104,105,0(即 ’h'     ‘i'    ’\0');字符串长度为2.
4,%d对应的是int型,%u对应的是unsigned  int型
5,对于浮点数来说,相除后仍然是浮点数(保留小数部分)。如:22.0/5.0   其值为4.4.
6,当一个表达式中出现多个运算符时,需要考虑优先级的问题,以最简单的算术运算符为例,它们的优先级从高到低依次是 * / % + -
7,当return语句的作用:1)返回一个值,2)函数立即退出
8,带有默认值的参数必须排在后面,如void Show (int x,int  y=1,int z=4)//可以
                 void Show(int x=1,int y, int z)//错误!带默认值的参数应该再后面
9,在指针中:int *a;a为指针变量,可以将int*表示为一个整数,*p表示取得p内存的值
*只能用于指针类型的整数
10,int  a=10;   
       int *p=&a;//此时*p=00XF0010,大概就是这个意思
        *p+=1;//*p=*p+1;表示为*p=00XF0011,只是数值上加1
——————————————————
   int arr[3]={1,2,3};
int *p=arr;//int *p=&arr[0];
p+=1;//p=p+1//后移一个元素,即*p=arr[1]
11.int arr[4]={1,2,3,4};
     *(arr+3)=10;    //即为 *arr[3]=10;
12.指针加减法是直接加减,整数加减法是所占字节数的加减法。
13.传值相当于是拷贝,占有别的内存;指针传值是传的地址,在原有的地址上操作,不开辟新的内存。

-----------------

1,pow(x,y);//其作用是计算x的y次方
2,char a[6][9];
      *(p+i*9+j)表示第i行第i列
      //p时二维数组的首地址,*p就是第一个字符,当i=1,j=1时,就是第二行第二个字符
3,赋值符号“=”号两边的数据类型必须是相同的,如果不同需要显现或隐式的类型转换

1.链表的存储空间是动态创建的,是可以添加对象和删除对象的,弥补了数组不能添加和删除。
2,使用malloc要加头文件#include <stdlib.h>
3,字符串中str+1也是表示一个字符串,例如,str[6]="hello",str+1="ello"


猜你喜欢

转载自blog.csdn.net/fps1234567/article/details/80783340