register关键字请求编译器将局部变量存储于寄存器中。
注意:在任何情况下,都不可能取得一个寄存器的地址,因为地址都是针对内存来说的,不是针对寄存器来说的。
#include <stdio.h>
int g_v;
//int g_v;
int main(int argc, char *argv[])
{
printf("Begin...\n");
int c = 0;
for(int i=1; i<=3; i++)
{
for(int j=1; j<=3; j++)
{
c += i * j;
}
}
printf("c = %d\n", c);
register int a = 0;
printf("&a = %p\n", &a);
printf("End...\n");
return 0;
}
思考:面试中的小问题:int f()和int f(void)有区别吗?如果有区别是什么?
#include <stdio.h>
struct Student
{
const char* name;
int age;
};
f(i)
{
printf("i = %d\n", i);
}
g()
{
return 5;
}
int main(int argc, char *argv[])
{
Student s1 = {"Delphi", 30};
Student s2 = {"Tang", 30};
f(10);
printf("g() = %d\n", g(1,2,3,4,5));
return 0;
}
C++中的布尔类型:
注意:true代表真值,编译器内部用1 来表示;false代表非真值,编译器内部用0来表示。
布尔类型的值
注意:其内部还是用一个字节的整形来实现的,为了兼容C语言,是支持数学运算的。
输出:0 1 1
#include <stdio.h>
int main(int argc, char *argv[])
{
bool b = false;
int a = b;
printf("sizeof(b) = %d\n", sizeof(b)); // 1
printf("b = %d, a = %d\n", b, a); // 0 0
b = 3;
a = b;
printf("b = %d, a = %d\n", b, a); // 1 1
b = -5;
a = b;
printf("b = %d, a = %d\n", b, a); // 1 1
a = 10;
b = a;
printf("a = %d, b = %d\n", a, b); // 10 1
a = 0;
b = a;
printf("a = %d, b = %d\n", a, b); // 0 0
return 0;
}
bool类型是C++中的基本数据类型:
C++ 对三目运算符进行了升级。
C语言中的三目运算符返回的是变量值
C++中的三目运算符可直接返回变量本身
注意:三目运算符可能返回的值中如果有一个是常量值,则不能作为左值使用。
思考:C++对三目运算符做了怎样的升级?这种升级的意义是什么?
C++对三目运算符做了什么?
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。