C和指针小结(推荐)

所属分类: 软件编程 / C 语言 阅读数: 50
收藏 0 赞 0 分享

C和指针

相关基础知识:内存的分配(谭浩强版)

1、整型变量的地址与浮点型/字符型变量的地址区别?(整型变量/浮点型变量的区别是什么)

2、int *p,指向整型数据的指针变量。

3、通过指针变量访问整型变量。

4、*p :指针变量p指向的存储单元(变量)

5、p = &a——>> *p = *&a

6、用指针作函数参数

7、调用函数中,由于虚实结合是采用单向的“值传递”方式,只能从实参向形参传数据,形参值的改变无法回传给实参。

8、引用一个数组元素可以用(1)下标法(2)指针法(占内存小,运行速度快)

9、指针提高效率在那些方面?(内存,运行时间??)

10、如果指针变量p已指向数组中的一个元素,则p+1指向同一数组中的下一个元素。

11、用指针变量作函数形参接受数组地址。数组指针和指针数组的区别

#include"iostream"
 using namespace std;
 int main()
 {
   void sort(int *p,int n);
   int a[5],i;
   cout<<"input array:"<<endl;
   for(i=0;i<5;i++)
   cin>>a[i];
   cout<<endl;
   sort(a,5);
   cout<<" the sorted array:"<<endl;
   for(i=0;i<5;i++)
   cout<<a[i]<<" ";
   cout<<endl;
   return 0;
 }
 
 void sort(int *p,int n)
 {
   int i,j,k,temp;
   for(i=0;i<n-1;i++)
   {
     k=i;
     for(j=i+1;j<n;j++)
     if(*(p+j)<*(p+k)) k=j;
     temp=*(p+k);
     *(p+k)=*(p+i);
     *(p+i)=temp;
   }
 }

12、一个int占多少个字节?

13、实参和形参的结合有一下4种形式:

实参 形参
数组名 数组名
数组名 指针变量
指针变量 数组名
指针变量 指针变量

14、实参数组名a代表一个固定的地址,或者说是指针常量,因此其值不可改变;形参数组名是指针变量,可以改变。//  a++ //语法错误,不可改变

15、字符串与指针。字符串数组/字符串变量/字符指针 存放字符串。

//test_3 指针存放字符串
 #include<iostream>
 using namespace std;
// #include<string> //字符串变量 
 int main()
 {
   char str1[]="I Love C++",str2[20],*p1,*p2;
   p1=str1;
   p2=str2;
  for(;*p1!='\0';p1++,p2++)
  *p2=*p1;
  *p2='\0';
  p1=str1;
  p2=str2;
  cout<<"str1 is "<<p1<<endl;
  cout<<"str2 is "<<p2<<endl;
  return 0; 
 }

16、函数与指针。函数的入口地址就称为函数的指针。

1)、用函数指针调用函数

函数类型 (*变量名)(函数形参表)

#include<iostream>
using namespace std;

 int main()
 {
   int max(int x, int y);
   int (*p)(int,int);
   int a,b,m;
   p=max;
   cin>>a>>b;
   m=p(a,b);
   
  cout<<"max is "<< m<<endl;
  return 0;
 } 
 
 int max(int x,int y)
 {
   int z;
   if (x<y)
   z=y;
   else
   z=x;
   return(z);
 }

2)、用指向函数的指针作函数参数。

3)、返回指针值的函数:指针函数。

类型名 *函数名(参数列表);int *a( int x,int y);

17、

1)、指向常量的指针(不允许通过指针变量修改它指向的对象的值)

const 类型名 *指针变量名

2)、常指针(指定指针变量的值为常量,即指针变量的指向不可改变)

类型名 *const 指针变量名

Tips:必须在定义是初始化,指定其指向。

指针变量的指向不可改变,但指针变量的指向变量的值可以改变。*p2=12;//合法

注意(const和*的位置)。const在*后面,请与定义指向常变量的指针变量的形式比较。

3)、指向常量的常指针(指针变量指向一个固定的对象,该对象的值不能改变)。

const 基本类型名 *const 指针变量名

18)、void指针类型

以上这篇C和指针小结(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

C++广播通信实例

这篇文章主要介绍了C++实现广播通信的方法,实例讲述了C++ socket广播通信的原理与实现方法,需要的朋友可以参考下
收藏 0 赞 0 分享

C++计算ICMP头的校验和实例

这篇文章主要介绍了C++计算ICMP头的校验和的方法,代码简单实用,对于校验ICMP报文来说有不错的实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享

C++设置超时时间的简单实现方法

这篇文章主要介绍了C++设置超时时间的简单实现方法,涉及系统函数setsockopt对套接口的操作,具有一定的实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享

C++实现ping程序实例

这篇文章主要介绍了C++实现ping程序实例,涉及C++对于ICMP数据包的发送与回显处理,具有一定的实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享

C++之boost::array的用法

这篇文章主要介绍了C++之boost::array的用法,以实例的形式简单讲述了静态数组的容器boost::array的使用技巧,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

C++之Boost::array用法简介

这篇文章主要介绍了C++之Boost::array用法简介,较为详细的分析了Boost::array中的常见用法,并用实例的形式予以总结归纳,需要的朋友可以参考下
收藏 0 赞 0 分享

VC文件目录常见操作实例汇总

这篇文章主要介绍了VC文件目录常见操作实例汇总,总结了VC针对文件目录的各种常用操作,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享

VC打印word,excel文本文件的方法

这篇文章主要介绍了VC打印word,excel文本文件的方法,是VC操作文本文件中非常实用的技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

VC++获得当前进程运行目录的方法

这篇文章主要介绍了VC++获得当前进程运行目录的方法,可通过系统函数实现该功能,是非常实用的技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

VC中SendMessage和PostMessage的区别

这篇文章主要介绍了VC中SendMessage和PostMessage的区别,较为全面的分析了SendMessage和PostMessage运行原理及用法上的不同之处,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多