1、常指针与指针常量

诀窍:观察const修饰的是谁,那谁就不可更改。

  const int *p;//const 修饰*p,所以*p不能更改。通过指针不可更改指向的值

  int const *p;//同上

  int *const p;//const 修饰p,所以p不能更改。指针指向不可更改

  const int *const p;//const 修饰p,又修饰*p,所以p不能更改,*p不能更改。指针指向不可更改,通过指针不可更改指向的值

2、内存对齐

  参考我之前写得笔记。

  http://www.cnblogs.com/songliquan/p/4346931.html

3、参数传递方式

  值传递,地址传递

  值传递:不会改变原变量

    值传递过程中会生成新的变量,所以函数内部的操作对传入参数没有影响

  地址传递:会将在函数内部对变量的改变带出来。

    地址传递是将变量的内存地址传入函数,函数内部的操作是直接作用在变量上。

 void Exchg1(int x, int y)//传值
{
int tmp;
tmp = x;
x = y;
y = tmp;
} void Exchg1(int *x, int *y)//传地址
{
int tmp;
tmp = *x;
*x = *y;
*y = tmp;
}

  如果在main函数中对函数进行调用,结果

 int main()
{
int a = ;
int b = ;
Exchg1(a, b);
printf("a = %d, b = %d\n", a, b);//这里没有改变
int c =;
int d =;
Exchg1(a, b);
printf("c = %d, d = %d\n", c, d); //这里才是真正的交换
return ;
}

3、函数指针和指针函数

  指针函数:普通函数,返回值比较特殊,是一个指针。

    int * Sum(int a);

  函数指针:指针变量,指向一个函数,只能指向一个形参列表一样的函数

    int (*p)(int a,int b);

    int Sum(int a,int b);

    p = ∑//赋值

    (*p)(10,20);//使用

4、字符串数字和常量字符串

  char name1[] = "wangwu";//字符串数组,可以任意修改字符串

  char *name2 = "zhangsan";//常量字符串,不能对其中的字符进行更改

最新文章

  1. userprofile同步用户失败的原因和解决方案
  2. [转]jQuery插件实现模拟alert和confirm
  3. windows7 64位安装mysql 5.7.11 zip压缩版
  4. linux笔记_磁盘分区
  5. Oracle中NVARCHAR2字符集不匹配问题
  6. const和非const函数重载
  7. 学习笔记_ADB常用指令
  8. 前端必备技能之Photosh切图
  9. 工作小结(关于webpack)
  10. ●BZOJ 2560 串珠子
  11. Java HttpClient4.5.2发送post请求示例
  12. Linux_磁盘分布_以及分区
  13. python程序—士兵出击
  14. Linux操作系统的VI命令
  15. Qt配置cmake;运行带参数的程序
  16. windows下更换pip源
  17. phpstudy的使用
  18. js调试系列: 初识控制台
  19. 调整Intellij IDEA内存
  20. SQL语言类别

热门文章

  1. EasyUI整理学习
  2. 【C++】【MFC】创建新的线程函数
  3. Java 日期时间格式化
  4. IOS NSBundle使用(访问文件夹)
  5. POJ 3057 Evacuation(二分匹配)
  6. noip模拟赛#42
  7. spark dataframe函数编程
  8. Java Web报错:getOutputStream() has already been called for this response解决方案
  9. Python 之私有属性
  10. vue2.0在页面中自定义组件模块,以及页面与组件之间的数据传递