c++基础
来源:互联网 发布:ps4连接不了网络 编辑:程序博客网 时间:2024/06/14 01:34
1.struct关键字
struct Movie/*可以指定类型名也可以不指定*/{ //成员都是public的 int ID; string Name;} movie; //可以在声明struct的时候声明一个struct实例,这个有啥意思呢? int main(){ //movie变量在Movie结构声明处定义了 movie.ID = 100; movie.Name = "Face Off"; cout<<"movie.ID = "<<movie.ID<<endl; cout<<"movie.Name = "<<movie.Name<<endl;同样的道理:
int (*f)(int,int) //定义了一个函数指针f.但f不是一个类型,在后续中只能用f,不能用
typedef int (*f)(int,int) //定义了一个类型.
2.函数指针
typedef int (*f)(int,int);int add(int a,int b){return a+b;}int plus(int a,int b){return a-b;}int pro(int a,int b,f fuc){ return fuc(a,b);}int main(){int a=1,b=2; cout<<pro(a,b,plus);return 1;}
3.指针定义
a) int a; // An integer
b) int *a; // A pointer to an integer
c) int **a; // A pointer to a pointer to an integer
d) int a[10]; // An array of 10 integers
e) int *a[10]; // An array of 10 pointers to integers
f) int (*a)[10]; // A pointer to an array of 10 integers
g) int (*a)(int); // A pointer to a function a that takes an integer argument and returns an integer
h) int (*a[10])(int); // An array of 10 pointers to functions that take an integer argument and return an integer
4.数组双引号和单引号赋
char
a[10]={
'r'
,
's'
,
'a'
,
's'
,
'r'
,
'w'
,
'q'
,
'e'
,
'w'
,
'q'
};
char
b[10]=
"rsasrwqewq"
;
strlen的参数是一个字符串,不是字符数组,它遇到字符串结束标识符就会返回,但是char a[10]={'r','s','a','s','r','w','q','e','w','q'};中并没有结束标识符,所以这个数会是一个随机的数,不一定是20,如果想要strlen(a)返回10,则需要进行如下的改动:char a[11]={'r','s','a','s','r','w','q','e','w','q','\0'};
2. 使用大括号的方式对字符数组赋值,在末尾是不会有字符串的结束标识符的,确切的说只是一些列的字符;使用双引号括起来的一系列字符成为字符串,字符串是自动添加字符串结束标识符的
5. C++中定义对象的语法,带括号与不带括号有什么区别?
class MyClass{public: MyClass() { std::cout << "Hello MyClass!" << std::endl; }public: void MyMethod() { std::cout << "Hello MyMethod!" << std::endl; }};
如果这样定义对象:MyClass obj; 那么它的构造函数将会被执行,如果调用obj.MyMethod();也会执行正确。可是如果带有括号:MyClass obj(); 那么它的构造函数不会被执行,调用obj.MyMethod();也会出现语法错误,请问这种语法是把obj定义成什么了? MyClass obj()把obj定义成什么 从语法上看是定义了一个名为obj,类型为MyClass类(也就是返回值为MyClass类型)的无参数函数。6. int* 和 int * (注意空格的位置)
对于单变量声明,即一条语句中只声明一个指针变量的情况,没有区别;原因是C语言允许形式的自由性。即以下两种声明方式效果相同。
- int *a;
- int* a;
对于一条语句中声明多个指针变量的情况,有很大区别。
- int* a, b,c;
对于这条语句,常会造成我们的误解:认为声明了三个整型指针。但是正解是:只有a是整型指针,b和c都是普通的整数。
这里的星号“*”号只是声明变量a的一部分,以上的变量声明相当于:
- int *a;
- int b;
- int c;
- int *a, *b, *c;
- C #基础
- c基础
- C基础
- c基础
- C 基础
- c基础
- C基础
- c基础
- C基础
- C基础
- C基础
- c基础
- C 基础
- c基础
- C基础
- C#基础
- C基础
- C基础
- linux 信号量解析
- 简单的0-1背包问题
- 黑马程序员_高新技术_代理
- no sapjco3 in java.library.path异常处理办法
- error C2146: syntax error : missing ';'
- c++基础
- 利用virtualbox的虚拟串口调试内核
- BSTR与char*转换
- 10 个需要了解的 Linux 网络和监控命令
- 用Visual Studio 2008开发IE BHO (浏览器帮助对象)之一
- 完美编程vim配置
- 快速加载properties文件
- linux 流量监控 ---iptraf的安装及使用
- HDU 4484 Hailstone HOTPO (简单模拟题)