C与C++中关键字static,const,extern 问题,C++中数组与指针函数

#include<stdio.h>
int a=9;

void fun1()
{
	printf("a=%d\n",a);
}

static 限定全局变量的可用范围在当前源文件内,在局部变量中只初始化一次
static int x=0;
//0x表示十六进制,0表示八进制(077),不带前缀则默认表示十进制。
//const 类型的对象在程序执行期间不能被修改改变。
//extern 可以继承全局变量声明,在其它文件内使用
void main()
{
	fun1();
}

//C++ 传数组给一个函数,数组类型自动转换为指针类型,因而传的实际是地址。
void myFun(int *param)
{
	
}
void myFun(int param[])
{
	
}
double getAverage(int arr[], int size)
{
  int    i, sum = 0;       
  double avg;          
 
  for (i = 0; i < size; ++i)
  {
    sum += arr[i];
   }
 
  avg = double(sum) / size;
 
  return avg;
}
#include <iostream>
using namespace std;
 
// 函数声明
double getAverage(int arr[], int size);
 
int main ()
{
   // 带有 5 个元素的整型数组
   int balance[5] = {1000, 2, 3, 17, 50};
   double avg;
 
   // 传递一个指向数组的指针作为参数
   avg = getAverage( balance, 5 ) ;
 
   // 输出返回值
   cout << "平均值是:" << avg << endl; 
    
   return 0;
}
//函数指针返回一个一维数组
int *myFun()
{
	
}
//example

#include <iostream>
#include <cstdlib>
#include <ctime>
 
using namespace std;
 
// 要生成和返回随机数的函数
int * getRandom( )
{
  static int  r[10];
 //C++ 不支持在函数外返回局部变量的地址,除非定义局部变量为 static 变量。
  // 设置种子
  srand( (unsigned)time( NULL ) );
  for (int i = 0; i < 10; ++i)
  {
    r[i] = rand();
    cout << r[i] << endl;
  }
 
  return r;
}
 
// 要调用上面定义函数的主函数
int main ()
{
   // 一个指向整数的指针
   int *p;
 
   p = getRandom();
   for ( int i = 0; i < 10; i++ )
   {
       cout << "*(p + " << i << ") : ";
       cout << *(p + i) << endl;
   }
 
   return 0;
}

参考:

发布了50 篇原创文章 · 获赞 3 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_41865104/article/details/91585042
今日推荐