现在的位置: 首页 > 综合 > 正文

C++函数笔记

2014年01月13日 ⁄ 综合 ⁄ 共 1185字 ⁄ 字号 评论关闭
#include<iostream>
#include<string>
using namespace std;

//使用数组名时,编译器自动会将数组名转成指向第一个元素的指针
//如果形参是数组的引用,编译器不会将数组形参转化为指针
// int &arr[10] //arr is an array of reference
//int (&arr)[10]//arr is a reference to an array of 10 ints
void print(const int ia[10]){
	for(size_t i=0;i!=10;i++)
		cout<<ia[i]<<endl;
}
void print1(const int (&ia)[10]){
	for(size_t i=0;i!=10;i++)
		cout<<ia[i]<<endl;
}


int main(){
	int ia[5]={1,2,3,4,5};
	//print(ia);//可以通过编译,运行结果不确定
	//print1(ia);//通不过编译
	int ib[10]={1,2,3};
	print(ib);
	print1(ib);
	int i;
	cin>>i;
	return 0;

}

 

int *matrix[10]  //array of 10 pointers

int (*matrix)[10] //pointer to an array of 10 ints

 

 

VS2008中如何给main函数传递参数呢?

在当前项目下右键选择properties->Debugging右边出现Command arguments,argc参数编译器会自动生成,argv[0]也不用自己加,编译器默认,其余参数自己添加,中间用空格隔开,比如我输入的是"green" "red" "blue" "white",则argc值为5

int main(int argc ,char *argv[]){
 int res=argc;
 string s[5];
 for(int i=0;i<5;i++){
  s[i]=argv[i];
      cout<<s[i]<<endl;
 }

}

 

 

//在形参表后面的const代表是个const member function
//const成员函数
//const改变了隐含的this形参的类型
//this限定为指向const对象的指针

 如

class Sales_item{

public:

double avg_price()const;

}

 

重载函数是具有相同的名字而形参表不同

注:如果只是返回值不同,而名字形参表相同时不能成为重载函数的,编译的时候也通不过

 

函数指针指指向函数而非指向对象的指针

 

函数指针也指向某个特定的类型,函数类型由其返回类型以及形参表确定,与函数名无关。

 

bool (*pf) (const string &,const string &)

这里*pf两侧的括号不能掉,否则变成该函数返回的是bool *类型,而不是代表pf是一个函数指针

【上篇】
【下篇】

抱歉!评论已关闭.