数组传参,main传参(c++)
2015-11-28 12:04
211 查看
三种形式
void print(const int*);
void print(const int []);
void print(const int [10]);
形式不同,但等价,每个函数唯一的类型是 const int* 类型的。
以数组作为形参的函数必须确保使用数组时不会越界。
1. 使用标记指示数组长度
适用于有明显标记的数组例如结束符,检测到结束符时结束程序。
2. 使用标准库规范
传递指向数组首元素和尾后元素的指针,从指针头开始遍历过程中后移,当检测到*beg == *end时结束程序。
3. 显示传递一个表示数组大小的形参
main()函数传参时定义为: main(int argc, char *argv[])
argc 为参数的个数,argv是一个数组,它的元素是指向C风格字符串的指针,argv[0]是当前程序的可执行文件名,可选实参从argv[1]开始。
//令其接受两个实参,把实参内容连接成一个string
int main(int argc,char **argv)
{
char *p = argv[1]; //记得使用指针记录argv[1]的头
while (*argv[1] != '\0') *argv[1]++;
while (*argv[2] != '\0') *argv[1]++ = *argv[2]++; //此时argv[1],argv[2]都指向最后一个字符,不能用作连接后输出
cout << p << endl;
return 0;
}
void print(const int*);
void print(const int []);
void print(const int [10]);
形式不同,但等价,每个函数唯一的类型是 const int* 类型的。
以数组作为形参的函数必须确保使用数组时不会越界。
1. 使用标记指示数组长度
适用于有明显标记的数组例如结束符,检测到结束符时结束程序。
2. 使用标准库规范
传递指向数组首元素和尾后元素的指针,从指针头开始遍历过程中后移,当检测到*beg == *end时结束程序。
3. 显示传递一个表示数组大小的形参
main()函数传参时定义为: main(int argc, char *argv[])
argc 为参数的个数,argv是一个数组,它的元素是指向C风格字符串的指针,argv[0]是当前程序的可执行文件名,可选实参从argv[1]开始。
//令其接受两个实参,把实参内容连接成一个string
int main(int argc,char **argv)
{
char *p = argv[1]; //记得使用指针记录argv[1]的头
while (*argv[1] != '\0') *argv[1]++;
while (*argv[2] != '\0') *argv[1]++ = *argv[2]++; //此时argv[1],argv[2]都指向最后一个字符,不能用作连接后输出
cout << p << endl;
return 0;
}
相关文章推荐
- 35.c/c++程序员面试宝典-容器
- C语言去掉字符串中的数字
- 在C++里类多一点好还是少一点好?
- 在C++里类多一点好还是少一点好?
- C++中char*与wchar_t*之间的转换
- C++中char*与wchar_t*之间的转换
- C语言学习之结构体与指针部分----结合doubango sip协议栈源代码学习---------阿冬专栏!!
- 载入PLY模型 C++
- C语言判断输入的字符串是否为回文结构
- 求输入两个数的最大公约数——C语言(求完善)
- C语言实现字符串函数
- c++11,std::find的并行化模板化
- C语言求三个数的中间值(三目运算符)
- JNA—模拟C语言结构体
- C语言将整形转化为对应的字符型
- C++学习笔记_对话框使用技巧
- C++ Vector使用心得
- C语言判读日期是否是合理日期
- C语言中条件语句的运用 (纯属小菜鸟学习总结)
- 34.c/c++程序员面试宝典-模板