关于指针的知识点
来源:互联网 发布:参与php开源项目 编辑:程序博客网 时间:2024/05/24 03:11
1函数的形参和在函数内声明的变量都是该函数的局部变量,不同函数的局部变量相互独立
2 void ab(int a,int b);调用时:ab(1,2);是把1赋值给a,把2赋值给b
3形参的改变和实参的改变无关。实际参数(简称实参)
4一个正确转换两个数的值的函数:
#include<stdio.h>
void swap(int* a,int* b)
{
int t=*a;
*a=*b;
*b=t;
}
int main()
{
int a=3,b=4;
swap(&a,&b);
cout<<a<<b<<endl;
return 0;
}
5 *a是指:a指向的变量,而不仅是a指向的变量所拥有的值
6 *a =*a+1;是让a指向的变量自增1,也可以写成(*a)++,因为++运算符优先级高于去内容运算符*,所以要加括号
7这个程序是错误的
void swap(int* a,int* b)
{
int* t;
*t=*a;
*a=*b;
*b=*t;
}
错误原因:t是一个变量(指针也是一个变量,只不过类型是指针),因此它的值在赋值前是不确定的。如果这个“不确定的值”所代表的内存单元恰好是能写入的,那么这段程序将正常工作;但如果它是只读的,程序可能崩溃。
8 sizeof 输出的是字节数
如:int a=3;
int len=sizeof(a);
cout<<len<<endl;
输出结果为4(一个int占4个字节)
如:double a=3;
int len=sizeof(a);
cout<<len<<endl;
输出结果为8(一个int占8个字节)
这里*a代表a[0],而不是整个数组
9在函数定义中的int a[ ]等价于int* a
10 a是数组名,a+1指向a[1]
若p是指针,k是整数,p+k就是指向指针后面第k个元素
p-k就是指向p前面第k个元素
11两种主要的求数组和的方法
1.
#include <iostream>
using namespace std;
int sum(int* begin,int* end)
{
int len=end-begin;
int cul=0;
for(int i=0;i<=len-1;i++)
cul=cul+begin[i];
return cul;
}
int main()
{
int a[5]={1,2,3,4,5};
cout<<sum(a,a+5)<<endl;
}
2.
#include <iostream>
using namespace std;
int sum(int* begin,int* end)
{
int cul=0;
for(int* p=begin;p!=end;p++)
cul=cul+*p;
return cul;
}
int main()
{
int a[5]={1,2,3,4,5};
cout <<sum(a,a+5) << endl;
return 0;
}
- 关于指针的知识点
- 关于指针的一些知识点
- 关于指针的复习知识点
- 关于指针的一些知识点
- 关于指针与内存的小知识点
- 指针知识点的总结
- 指针的知识点
- 指针的基本知识点
- 关于指针的指针
- 有关数组的指针知识点
- 函数与指针的知识点
- 关于map的知识点
- 关于String的知识点
- 关于JSP的知识点
- 关于View的知识点
- 关于json的知识点
- 关于webview的知识点
- 关于Session的知识点
- iOS打开摄像头录像
- PAT L3-001. 凑零钱(背包&路径记录)
- layoutSubviews调用情况
- c++作业6
- iOS 版本更新
- 关于指针的知识点
- 2dx-lua游戏震屏效果&简单的lua-binding
- dex2jar 使用
- 开发中碰到的问题:android java.lang.UnsatisfiedLinkError:
- 基于Oracle的私有云架构探析(连载一)
- Arduino入门教程—RFID模块的使用(MF RC522)
- C++ string类型详解
- java中dao层和service层的区别,为什么要用service?
- 人工智能和机器学习领域有哪些有趣的开源项目?